Nes*_*tor 13 .net sql-server ado.net
我需要使用ADO.NET向SQL 2008发送一个命令列表,一个接一个地执行.我应该为我发送的每个SQL创建一个新的SQLCommand吗?或者重用相同的SQLCommand并只更改CommandText属性?谢谢,内斯特
Joh*_*zen 17
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)