我注意到sqlWrite.ExecuteNonQuery();在几秒钟内执行200次插入查询后,我的代码出错了.我一直以为这using将确保资源得到正确使用,并且不需要做任何事情.这是我第一次遇到这个错误而且我已经用sql/c#处理了近3年不同的事情.
using (SqlConnection varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetails))
{
using (var sqlWrite = new SqlCommand(preparedCommand, varConnection))
{
sqlWrite.Parameters.AddWithValue("@var_agr_fname", var_agr_fname == "" ? (object) DBNull.Value : var_agr_fname);
sqlWrite.ExecuteNonQuery();
}
}
public static SqlConnection sqlConnectOneTime(string varSqlConnectionDetails)
{
var sqlConnection = new SqlConnection(varSqlConnectionDetails);
try
{
sqlConnection.Open();
}
catch
{
DialogResult result = MessageBox.Show(new Form {TopMost = true},
"B??d po??czenia z baz? danych. Czy chcesz spróbowa? nawi?zac po??czenie ponownie?",
"B??d po??czenia (000001)",
MessageBoxButtons.YesNo,
MessageBoxIcon.Stop);
if (result == DialogResult.No)
{
if (Application.MessageLoop)
{ …Run Code Online (Sandbox Code Playgroud) 以下两种方法中哪一项具有更好的性能?
using( var DB_Connection_s = new DBConnection() )
{
//todo: interact with database connection
}
Run Code Online (Sandbox Code Playgroud)
要不就 :
DB_Connection_s.Close();
Run Code Online (Sandbox Code Playgroud)
在末尾.
第一种方法是否使汇集概念变得无用?因为如果我在每次使用时都处理连接,那么每次都必须打开一个新连接(并且池中没有任何连接).