私は次のコードを持っています:
SqlCommand cmd2 = new SqlCommand(
"SELECT ClaimId FROM tblPayment WHERE PaymentId = " + PaymentID.ToString(),
mvarDBConn);
SqlDataReader reader = cmd2.ExecuteReader();
reader.Read();
Int32 ClaimId = reader.GetInt32(0);
reader.Close();
SQLでSELECTステートメントを実行すると、数値は正常に返されますが、ExecuteReaderを使用すると、返されるのは0だけです。ExecuteScalar、ExecuteNonQuery、reader.GetStringなどの複数のメソッドを試し、それをintにキャストしました。
私は何が欠けていますか?ありがとう。
編集:SQLServerプロファイルで取得するものは次のとおりです。
これが私が返すものです:
exec sp_executesql N'SELECT ClaimId FROM tblPayment WHERE PaymentId = @paymentID',N'@paymentID nvarchar(5)',@paymentID=N'8392'
私が持っていた前のSqlCommandが「N」と同じようにSQLに直接移動するときに、なぜそれがSP_ExecuteSQLに入れられるのかわかりません。