私はクエリを実行するときにブロックを使用しないことを覚えていますが、私は今はロックテーブルに問題があります。SQLコマンドの文を使用
しかし、次のコードをusingブロックに書き直す必要があります。
sql = conn.CreateCommand();
sql.CommandText = query;
sql.Parameters.Add("@p_DateFrom", SqlDbType.VarChar).Value = datefrom.ToString("yyyy-MM-dd");
sql.CommandType = CommandType.Text;
int rowCount = (Int32)sql.ExecuteScalar();
sql.Parameters.Clear();
sql.Dispose();
return rowCount;
これを書き直すにはどうすればいいですか。私は次の操作を行う必要があります:
int rowCount = 0;
using (sql = conn.CreateCommand())
{
sql.CommandText = query;
sql.Parameters.Add("@p_DateFrom", SqlDbType.VarChar).Value = datefrom.ToString("yyyy-MM-dd");
sql.CommandType = CommandType.Text;
rowCount = (Int32)sql.ExecuteScalar();
}
return rowCount;
あなたはそれを試して何が起こるかを見てみませんか?あなたが問題を抱えているなら、戻ってきて尋ねることができます! – Nick
テーブルをロックすることは、 'ExecuteScalar'を使用しているので特に' using'ステートメントとはあまり関係がありません。 –
コマンドまたはコネクションを破棄すると、[テーブルのロック](http:// blogs。 msdn.com/b/joesack/archive/2009/05/22/troubleshooting-table-locks.aspx)。 –