如何正确使用一SqlConnection
多个查询的对象?
SqlConnection connection = new SqlConnection(connString);
static void SqlQuery(SqlConnection conn, string cmdString)
{
using (conn)
{
if (conn.State != ConnectionState.Open)
{
conn.Close();
conn.Open();
}
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = cmdString;
cmd.ExecuteNonQuery();
}
}
功能SqlQuery
第一次调用抛出后System.InvalidOperationException
“ConnectionString 属性未初始化”
简而言之,不要这样做
创建类的新实例SqlConnection
不会创建到 SQL Server 的新网络连接,而是租用现有连接(或创建新连接)。 .NET 为您处理物理连接池。
当您完成连接(您可以通过它发送多个查询)时Close()
or Dispose()
(或使用using{}
最好是块)。
没有必要缓存 SqlConnection 类的实例,这也不是一个好的做法。
Update
对于您的方法来说,这是一个更好的模式,您不必担心连接状态
static void SqlQuery(string cmdString)
{
using (var connection = new SqlConnection(connString))
using (var cmd = connection.CreateCommand(cmdString, connection))
{
connection.Open();
// query
cmd.ExecuteNonQuery();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)