目錄
<dl></dl>
<connectionStrings>
<!--SqlServerHelper連接配接字元串設定-->
<add connectionString="server=.;uid=sa;pwd=123456;database=yourdatabase" name="SqlServerHelper"/>
<!--Oracle連接配接字元串設定-->
<add connectionString="Data Source=orcl;User Id=system;Password=***;Integrated Security=no" name="OracleHelper"/>
<!--MySql連接配接字元串設定-->
<add connectionString="server=localhost;uid=root;pwd=123456;database=mysqldatabase" name="MySqlHelper"/>
</connectionStrings>
編寫SqlHelper調用代碼:
SqlHelper支援多種資料庫包括MySql、SqlServer、Oracle、Access資料庫,如果的資料庫是SqlServer,那麼你可以使用SqlServerHelper類,如果是MySql,可以使用MySqlHelper,如果是Access,可以使用AccessHelper。如果是Oracle則可以使用OracleHelper類。
//查詢語句執行:
DataTable dt=SqlServerHelper.ReadTable("select * from table1");
//插入語句執行:
SqlServerHelper.ExecuteNonQuery("insert into [students] values(@student_name,@class)",
SqlServerHelper.CreateInputParameter("@student_name", SqlDbType.NVarChar, 100, txt_student_name_sqlserver.Text),
SqlServerHelper.CreateInputParameter("@class", SqlDbType.NVarChar, 100, txt_class_sqlserver.Text)
);
簡單吧,這讓項止顯的代碼又簡單,又清晰!
using (SqlServerHelper helper = new SqlServerHelper())
{
helper.Command.CommandText = "delete from [Students] where stid=@stid";
helper.AddParameter("@stid", SqlDbType. Int, student_id);
helper.Open();
helper.ExecuteNoneQuery();
helper.Command.Parameters.Clear();
helper.Command.CommandText = "select * from [Students]";return helper.ReadTable();
}
這是官方示例代碼中的一部分,文法簡單,在一個using語句中執行了delete删除語句和select查語句。
DbTransaction tran = helper.Connection.BeginTransaction();
helper.Command.Transaction=tran;
try
tran.Rollback();
}catch { tran.Rollback(); throw; }
在 SqlHelper 類中實作的方法包括:
ExecuteScalar。此方法傳回一個值。該值始終是該指令傳回的第一行的第一列。
ExecuteXmlReader。此方法傳回 FOR XML 查詢的 XML 片段。
AttachParameters:該函數用于将所有必要的 SqlParameter 對象連接配接到正在運作的 SqlCommand。
AssignParameterValues:該函數用于為 SqlParameter 對象指派。
PrepareCommand:該函數用于對指令的屬性(如連接配接、事務環境等)進行初始化。
/// <summary>
/// 自定義通路通用類
/// </summary>
public class SqlDbHelper
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
public SqlDbHelper()
/// ExecuteNonQuery操作,對資料庫進行 增、删、改 操作((1)
/// <param name="sql">要執行的SQL語句 </param>
/// <returns> </returns>
public int ExecuteNonQuery(string sql)
return ExecuteNonQuery(sql, CommandType.Text, null);
/// ExecuteNonQuery操作,對資料庫進行 增、删、改 操作(2)
public int ExecuteNonQuery(string sql, CommandType commandType)
return ExecuteNonQuery(sql, commandType, null);
/// ExecuteNonQuery操作,對資料庫進行 增、删、改 操作(3)
/// <param name="commandType">要執行的查詢類型(存儲過程、SQL文本) </param>
/// <param name="parameters">參數數組 </param>
public int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
int count = 0;
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(sql, connection))
command.CommandType = commandType;
if (parameters != null)
foreach (SqlParameter parameter in parameters)
command.Parameters.Add(parameter);
connection.Open();
count = command.ExecuteNonQuery();
return count;
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataSet類型結果(1)
public DataSet ExecuteDataSet(string sql)
return ExecuteDataSet(sql, CommandType.Text, null);
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataSet類型結果(2)
public DataSet ExecuteDataSet(string sql, CommandType commandType)
return ExecuteDataSet(sql, commandType, null);
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataSet類型結果(3)
public DataSet ExecuteDataSet(string sql, CommandType commandType, SqlParameter[] parameters)
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(ds);
return ds;
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataTable類型結果(1)
public DataTable ExecuteDataTable(string sql)
return ExecuteDataTable(sql, CommandType.Text, null);
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataTable類型結果(2)
public DataTable ExecuteDataTable(string sql, CommandType commandType)
return ExecuteDataTable(sql, commandType, null);
/// SqlDataAdapter的Fill方法執行一個查詢,并傳回一個DataTable類型結果(3)
public DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters)
DataTable data = new DataTable();
adapter.Fill(data);
return data;
return ExecuteReader(sql, CommandType.Text, null);
return ExecuteReader(sql, commandType, null);
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(sql, connection);
return command.ExecuteReader(CommandBehavior.CloseConnection);
/// ExecuteScalar執行一查詢,傳回查詢結果的第一行第一列(1)
public Object ExecuteScalar(string sql)
return ExecuteScalar(sql, CommandType.Text, null);
/// ExecuteScalar執行一查詢,傳回查詢結果的第一行第一列(2)
public Object ExecuteScalar(string sql, CommandType commandType)
return ExecuteScalar(sql, commandType, null);
/// ExecuteScalar執行一查詢,傳回查詢結果的第一行第一列(3)
public Object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters)
object result = null;
result = command.ExecuteScalar();
return result;
/// 傳回目前連接配接的資料庫中所有由使用者建立的資料庫
public DataTable GetTables()
DataTable data = null;
data = connection.GetSchema("Tables");
本文轉自左正部落格園部落格,原文連結:http://www.cnblogs.com/soundcode/archive/2013/04/18/3027917.html,如需轉載請自行聯系原作者