天天看点

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,如需转载请自行联系原作者