`
yanfaguanli
  • 浏览: 658138 次
文章分类
社区版块
存档分类
最新评论

C# WPF 快速开发09数据库封装类SqlHelper

 
阅读更多

//深入视频没下载完成没看,直接拿老师的代码贴上来了

//相应的有CommonHelper,将程序大多UI窗口用到的方法放到里面去。

//后话:这里有三个版本的SqlHelper

第一个版本只能传递”sql语句”参数,简单,但无法抵挡sql注入攻击

第二个版本还可以传递SqlParameter数组参数,即可以传递不确定个数的参数进来(当然第一个参数必须确定得是sql语句参数)。但在使用过程中比较麻烦,比较给参数New一个SqlParameter对象存入参数值。

第三个版本在第二个版本的基础上,是SqlHelper使用变得简单,可以直接传入数值,而不是SqlParameter对象。主要应用这个params咚咚,没深入学过C#,不懂这个咚咚,说是长度可变变量。

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Configuration;

usingSystem.Data.SqlClient;

usingSystem.Data;

namespaceADONET2

{

classSqlHelper

{

privatestaticstringconnStr=ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;

//封装方法原则:把不变的放到方法,把变化的放到参数中

////publicstaticintExecuteNonQuery(stringsql)

////{

////using(SqlConnectionconn=newSqlConnection(connStr))

////{

////conn.Open();

////using(SqlCommandcmd=conn.CreateCommand())

////{

////cmd.CommandText=sql;

////returncmd.ExecuteNonQuery();

////}

////}

////}

////publicstaticobjectExecuteScalar(stringsql)

////{

////using(SqlConnectionconn=newSqlConnection(connStr))

////{

////conn.Open();

////using(SqlCommandcmd=conn.CreateCommand())

////{

////cmd.CommandText=sql;

////returncmd.ExecuteScalar();

////}

////}

////}

//////只用来执行查询结果比较少的sql

////publicstaticDataTableExecuteDataTable(stringsql)

////{

////using(SqlConnectionconn=newSqlConnection(connStr))

////{

////conn.Open();

////using(SqlCommandcmd=conn.CreateCommand())

////{

////cmd.CommandText=sql;

////SqlDataAdapteradapter=newSqlDataAdapter(cmd);

////DataSetdataset=newDataSet();

////adapter.Fill(dataset);

////returndataset.Tables[0];

////}

////}

////}

//第二版

//publicstaticintExecuteNonQuery(stringsql,SqlParameter[]parameters)

//{

//using(SqlConnectionconn=newSqlConnection(connStr))

//{

//conn.Open();

//using(SqlCommandcmd=conn.CreateCommand())

//{

//cmd.CommandText=sql;

////foreach(SqlParameterparaminparameters)

////{

////cmd.Parameters.Add(param);

////}

//cmd.Parameters.AddRange(parameters);

//returncmd.ExecuteNonQuery();

//}

//}

//}

//publicstaticobjectExecuteScalar(stringsql,SqlParameter[]parameters)

//{

//using(SqlConnectionconn=newSqlConnection(connStr))

//{

//conn.Open();

//using(SqlCommandcmd=conn.CreateCommand())

//{

//cmd.CommandText=sql;

//cmd.Parameters.AddRange(parameters);

//returncmd.ExecuteScalar();

//}

//}

//}

////只用来执行查询结果比较少的sql

//publicstaticDataTableExecuteDataTable(stringsql,SqlParameter[]parameters)

//{

//using(SqlConnectionconn=newSqlConnection(connStr))

//{

//conn.Open();

//using(SqlCommandcmd=conn.CreateCommand())

//{

//cmd.CommandText=sql;

//cmd.Parameters.AddRange(parameters);

//SqlDataAdapteradapter=newSqlDataAdapter(cmd);

//DataSetdataset=newDataSet();

//adapter.Fill(dataset);

//returndataset.Tables[0];

//}

//}

//}

//第三版:使用长度可变参数来简化

publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]parameters)

{

using(SqlConnectionconn=newSqlConnection(connStr))

{

conn.Open();

using(SqlCommandcmd=conn.CreateCommand())

{

cmd.CommandText=sql;

//foreach(SqlParameterparaminparameters)

//{

//cmd.Parameters.Add(param);

//}

cmd.Parameters.AddRange(parameters);

returncmd.ExecuteNonQuery();

}

}

}

publicstaticobjectExecuteScalar(stringsql,paramsSqlParameter[]parameters)

{

using(SqlConnectionconn=newSqlConnection(connStr))

{

conn.Open();

using(SqlCommandcmd=conn.CreateCommand())

{

cmd.CommandText=sql;

cmd.Parameters.AddRange(parameters);

returncmd.ExecuteScalar();

}

}

}

//只用来执行查询结果比较少的sql

publicstaticDataTableExecuteDataTable(stringsql,paramsSqlParameter[]parameters)

{

using(SqlConnectionconn=newSqlConnection(connStr))

{

conn.Open();

using(SqlCommandcmd=conn.CreateCommand())

{

cmd.CommandText=sql;

cmd.Parameters.AddRange(parameters);

SqlDataAdapteradapter=newSqlDataAdapter(cmd);

DataSetdataset=newDataSet();

adapter.Fill(dataset);

returndataset.Tables[0];

}

}

}

}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics