天天看點

SqlHelper

目錄

<dl></dl>

&lt;connectionStrings&gt;

&lt;!--SqlServerHelper連接配接字元串設定--&gt;

&lt;add connectionString="server=.;uid=sa;pwd=123456;database=yourdatabase" name="SqlServerHelper"/&gt;

&lt;!--Oracle連接配接字元串設定--&gt;

&lt;add connectionString="Data Source=orcl;User Id=system;Password=***;Integrated Security=no" name="OracleHelper"/&gt;

&lt;!--MySql連接配接字元串設定--&gt;

&lt;add connectionString="server=localhost;uid=root;pwd=123456;database=mysqldatabase" name="MySqlHelper"/&gt;

&lt;/connectionStrings&gt;

編寫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:該函數用于對指令的屬性(如連接配接、事務環境等)進行初始化。

/// &lt;summary&gt;

/// 自定義通路通用類

/// &lt;/summary&gt;

public class SqlDbHelper

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

public SqlDbHelper()

/// ExecuteNonQuery操作,對資料庫進行 增、删、改 操作((1)

/// &lt;param name="sql"&gt;要執行的SQL語句 &lt;/param&gt;

/// &lt;returns&gt; &lt;/returns&gt;

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)

/// &lt;param name="commandType"&gt;要執行的查詢類型(存儲過程、SQL文本) &lt;/param&gt;

/// &lt;param name="parameters"&gt;參數數組 &lt;/param&gt;

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,如需轉載請自行聯系原作者