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