usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;//导入访问SqlServer数据库的名称空间
///
///SqlHelper的摘要说明
///
publicclassSqlHelper
{
privatestaticreadonlystringstrConn=ConfigurationManager.ConnectionStrings["TangCompanyConn"].ConnectionString;//从配置文件获得与数据库的连接字符串
privatestaticreadonlystringstrName=ConfigurationManager.AppSettings["userName"].ToString();//从配置文件中获得用户名
privatestaticreadonlystringstrPass=ConfigurationManager.AppSettings["userPass"].ToString();//从配置文件中获得密码
publicSqlHelper()
{
//
//TODO:在此处添加构造函数逻辑
//
}
publicstaticSqlDataReaderExcuteRead(stringnText,CommandTypenType,SqlParameter[]paras){
SqlConnectionconn=newSqlConnection(strConn);//获得一个与数据库之间建立连接的连接对象
SqlCommandcmd=newSqlCommand();//创建一个执行SQL语句的命令对象
try
{
PrepareCommand(conn,cmd,null,nType,nText,paras);//调用后面的方法,后面具体说
SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);//通过SQLCommand对象创建一个SqlDataReader对象
cmd.Parameters.Clear();//清空所有参数
returndr;//返回SqlDataReader对象
}
catch(SqlExceptionex){
thrownewException(ex.Message,ex);
}
}
publicstaticintExcuteNonQurey(stringnText,CommandTypenType,SqlParameter[]paras){
SqlCommandcmd=newSqlCommand();//创建一个执行SQL语句的命令对象
//此处采用了using写法,自动释放连接对象
using(SqlConnectionconn=newSqlConnection(strConn))//括号内创建一个与数据库之间的连接对象
{
PrepareCommand(conn,cmd,null,nType,nText,paras);//调用后面的方法,后面详细说明
introws=cmd.ExecuteNonQuery();//执行T-SQL,并将所获得的返回行数赋给rows
cmd.Parameters.Clear();//清空所有参数
returnrows;//返回执行T-SQL所影响的行数
}
}
publicstaticobjectExcuteSclare(stringnText,CommandTypenType,SqlParameter[]paras){
SqlCommandcmd=newSqlCommand();//创建一个执行SQL语句的命令对象
//此处采用了using写法,自动释放连接对象
using(SqlConnectionconn=newSqlConnection(strConn))//括号内创建一个与数据库之间的连接对象
{
PrepareCommand(conn,cmd,null,nType,nText,paras);//调用后面的方法,后面详细说明
objectobj=cmd.ExecuteScalar();//返回查询中的第一行第一列,忽略其它。
cmd.Parameters.Clear();//清空所有参数
returnobj;//返回所查询到的对象
}
}
publicstaticDataSetExcuteReadApdater(stringnText,CommandTypenType,SqlParameter[]paras){
SqlConnectioncon=newSqlConnection(strConn);//创建一个与数据库建立连接的对象
SqlCommandcmd=newSqlCommand();//创建一个执行SQL语句的命令对象
DataSetds=newDataSet();//创建一个数据集对象
try
{
PrepareCommand(con,cmd,null,nType,nText,paras);//调用后面的方法,后面详细说明
SqlDataAdaptersqlAdapter=newSqlDataAdapter(cmd);//创建一个数据适配器对象
sqlAdapter.Fill(ds);//填充数据集
cmd.Parameters.Clear();//清空所有参数
returnds;//返回数据集对象
}
catch(SqlExceptionex){
thrownewException(ex.Message,ex);
}
}
publicstaticvoidPrepareCommand(SqlConnectioncon,SqlCommandcmd,SqlTransactiontrans,CommandTypenType,stringnText,SqlParameter[]paras){
if(con.State!=ConnectionState.Open)//判断与数据库之间的连接状态
con.Open();//打开与数据库之间的连接
cmd.Connection=con;//为sqlcommand对象指定连接对象
cmd.CommandText=nText;//指定T-sql语句
if(trans!=null){//判断事务对象是否为null
cmd.Transaction=trans;//为sqlcommand对象指定事务对象
}
cmd.CommandType=nType;//执行sqlcommand执行语句的类型
if(paras!=null){//判断是否有参数
foreach(SqlParameterparainparas)//循环添加参数
{
cmd.Parameters.Add(para);
}
}
}