using{sqlconnection conn=new ..}
每次操作数据库查询更新都是这么做的,如果要更新五张表,我就五次using操作,这种做法是不是不好啊,看过一些别人的代码,用的一些dll之类的,我改怎么改进呢
------解决思路----------------------
更新5张表可以 放到一起操作,只连接一次db。
------解决思路----------------------
用List<ClassUserType.Parameter[]>把要更新的数据表都打包过去,using(连接)一次后 循环遍历,或者直接用存储过程。
------解决思路----------------------
那你干嘛不把这个方法写为公共方法呢?
------解决思路----------------------
如果性能受影响,那就需要把库连接方式做点优化,
连接一次,完成相关操作,
频繁的连接、断开效率不高
------解决思路----------------------
public static int ExecuteDataSet(CommandType cmdType, string cmdText, params ClassUserType.Parameter[] parameters)
{
int sum = 0;
using (SqlConnection con = new SqlConnection(ConnectionString))
{
con.Open();
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
using (SqlCommand cmd = new SqlCommand())
{
PrepareCommand(con, cmd, cmdType, cmdText, ChangeToSqlPara(parameters));
sum = cmd.ExecuteNonQuery();
return sum;
}
}
}
public static void PrepareCommand(SqlConnection con, SqlCommand cmd, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (con.State != ConnectionState.Open)
con.Open();
cmd.Connection = con;
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
if (cmdParms == null)
return;
foreach (SqlParameter sqlParameter in cmdParms)
{
if (sqlParameter != null)
{
if (sqlParameter.Direction == ParameterDirection.InputOutput
------解决思路----------------------
sqlParameter.Value == null)
sqlParameter.Value = (object)DBNull.Value;
cmd.Parameters.Add(sqlParameter);
}
}
}
给你贴个吧,用的是存储过程,插入,写的不好请见谅。。
------解决思路----------------------
可以看看这个http://blog.csdn.net/fengqingtao2008/article/details/17399247
------解决思路----------------------
C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
http://blog.csdn.net/jiankunking/article/details/17992817
------解决思路----------------------
楼主,我建议你先优化自己现在的数据库查询方法,等熟练了之后在用助手类(你说的dll)来操作数据库,先把基础给打牢,这有好处的。
你的using{sqlconnection conn=new ..}的使用方式,在一个查询过程当中只需用一次就行,另外ado.net可以多条查询语句一并执行的,这些基础的技巧练好了,以后再去用助手类,你甚至到时候可以自己给自己写个助手类,你现在拿别人的用,也弄不清到底人家是怎么写的。