我需要使用ADO.NET向SQL2008发送一个命令列表,以便一个接一个地执行。我应该为我发送的每个SQL创建一个新的SQLCommand吗?或者重用相同的SQLCommand并只更改CommandText属性?谢谢,内斯特
发布于 2009-10-05 03:46:58
SqlCommands是相当轻量级的。每次都可以安全地创建一个新的。
参数化命令有一些复杂之处,您需要清除并重置所有参数,在这一点上,创建一个新命令是干净、易于理解和有效的。
此外,每次都使用新的SqlConnection通常也是可以的。自动的、内置的连接池是让这一切变得高效的“魔法”。
我使用的是:
public void ExecuteQuery(string query)
{
this.ExecuteQuery(query, null);
}
public void ExecuteQuery(string query, Dictionary<string, object> parameters)
{
using (SqlConnection conn = new SqlConnection(this.connectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = query;
if (parameters != null)
{
foreach (string parameter in parameters.Keys)
{
cmd.Parameters.AddWithValue(parameter, parameters[parameter]);
}
}
cmd.ExecuteNonQuery();
}
}
}https://stackoverflow.com/questions/1518188
复制相似问题