ExecuteScalar() 、ExecuteNonQuery() 、ExecuteReader()
在編程中常用當中有以上三種:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引用SQL數據
using System.Data;
using System.Data.SqlClient;
namespace ADO
{
class SQLHelper
{
//連接字符串
private static string connString = "Server=服務器名;DataBase=數據庫名;Uid=用戶名;Pwd=用戶密碼";
/// <summary>
/// 獲取單一結果
/// </summary>
/// <param name="sql_string">SQL語句</param>
/// <returns>返回單一結果</returns>
public static object ExecuteScalar的方法名(string sql_string)
{
SqlConnection myCon = new SqlConnection(connString);
SqlCommand myCmd = new SqlCommand(sql_string, myCon);
myCon.Open();
string result = myCmd.ExecuteScalar();
myCon.Close();
return result;
}
/// <summary>
/// 執行非查詢操作
/// </summary>
/// <param name="sql_string">SQL語句</param>
/// <returns>返回受影響的行</returns>
public static int ExecuteNonQuery的方法名(string sql_string)
{
SqlConnection myCon = new SqlConnection(connString);
SqlCommand myCmd = new SqlCommand(sql_string, myCon);
myCon.Open();
int result = myCmd.ExecuteNonQuery();
myCon.Close();
return result;
}
/// <summary>
/// 獲取只讀數據集
/// <param name="sql_string">SQL語句</param>
/// <returns>返回只讀取數據集</returns>
/// </summary>
public static SqlDataReader ExecuteReader的方法名(string sql_string)
{
SqlConnection myCon = new SqlConnection(connString);
SqlCommand myCmd = new SqlCommand(sql_string, myCon);
myCon.Open();
string result = myCmd.ExecuteReader(CommandBehavior.CloseConnection);
return result;
}
}
}
在 Program 類中調用 SQLHelper
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ADO
{
class Program
{
static void Main(string[] args)
{
//string sqlString = "delete from Student where studentNO='S110601'";
//int myExcuteNonQuery = SQLHelper.myExecuteNonQuery(sqlString);
//Console.WriteLine(myExcuteNonQuery);
//下面這個要特別注意:
string sql = "select * from Student where gender='男'";
sql += "select * from Student where gender='女'";
SqlDataReader objRead = SQLHelper.ExecuteReader的方法名(sql);
while (objRead.Read())
{
Console.WriteLine(objRead["StudentNO"].ToString() + " " + objRead["StudentName"].ToString() + " " + objRead["gender"].ToString());
}
Console.WriteLine("==========================================");
if( objRead.NextResult())
{
while (objRead.Read())
{
Console.WriteLine(objRead["StudentNO"].ToString() + " " + objRead["StudentName"].ToString() + " " + objRead["gender"].ToString());
}
}
objRead.Close();
}
}
}
SQLHelper 另一種詳細寫法
using System;
using System.Collections.Generic;
using System.Text;
//引用SQL數據
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication2
{
class SQLHelper
{
//連接字符串
private static string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=123";
/// <summary>
/// ExecuteScalar()
/// </summary>
/// <param name="sql_string">SQL語句</param>
/// <returns>返回單個值的功能</returns>
public static object ExecuteScalar的方法名(string sql_string)
{
using (SqlConnection myCon = new SqlConnection(connString))
{
using (SqlCommand myCmd = new SqlCommand(sql_string, myCon))
{
try
{
myCon.Open();
return myCmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
myCon.Close();
}
}
}
}
/// <summary>
/// ExecuteNonQuery()
/// </summary>
/// <param name="sql_string">SQL語句</param>
/// <returns>返回受影響的行</returns>
public static int myExecuteNonQuery(string sql_string)
{
using (SqlConnection myCon = new SqlConnection(connString))
{
using (SqlCommand myCmd = new SqlCommand(sql_string, myCon))
{
try
{
myCon.Open();
return myCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
myCon.Close();
}
}
}
}
/// <summary>
/// ExecuteReader()
/// </summary>
/// <param name="sql_string">SQL語句</param>
/// <returns>返回讀取數據集</returns>
public static SqlDataReader ExecuteReader的方法名(string sql_string)
{
using (SqlConnection myCon = new SqlConnection(connString))
{
using (SqlCommand myCmd = new SqlCommand(sql_string, myCon))
{
try
{
myCon.Open();
return myCmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
throw ex;
}
finally
{
myCon.Close();
}
}
}
}
}
}