セッション変数を使用してユーザー入力と一致する次のコードがあります。ストアドプロシージャは、セッション変数のデータがデータベース内のデータと一致する場合、行カウントを返します。ストアドプロシージャを実行し、出力パラメータとSQLパラメータを使用して行カウントをコードに戻す
すべては動作しますが、常に1行になる行数を返します。 一言で言えば、フォームにアクセスして情報を追加し、submitを押します。データはセッションに格納され、ストアドプロシージャは一致したときにデータを返します。
プログラムが動作するにもかかわらずintRecCount変数は常にゼロではなく行数を超えています。
ストアドプロシージャ:出力変数を介して行数を保持する変数次いで...
public static DataSet Confirmation()
{
SqlCommand cmdSQL = new SqlCommand("uspConfirmation", Connection);
cmdSQL.CommandType = CommandType.StoredProcedure;
cmdSQL.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar, 36));
cmdSQL.Parameters["@RecordID"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@RecordID"].Value = RecordIDSession;
cmdSQL.Parameters.Add(new SqlParameter("@LName", SqlDbType.VarChar, 30));
cmdSQL.Parameters["@LName"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@LName"].Value = LNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@FName", SqlDbType.VarChar, 30));
cmdSQL.Parameters["@FName"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@FName"].Value = FNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@MInit", SqlDbType.Char, 1));
cmdSQL.Parameters["@MInit"].Direction = ParameterDirection.Input;
cmdSQL.Parameters["@MInit"].Value = MNameSession;
cmdSQL.Parameters.Add(new SqlParameter("@RecordCount", SqlDbType.Int));
cmdSQL.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
..:
CREATE PROCEDURE [dbo].[uspConfirmation]
@RecordID CHAR(36),
@LName VARCHAR(30),
@FName VARCHAR(30),
@MInit CHAR(1),
@RecordCount INT OUTPUT
AS
SELECT * FROM Registration
WHERE RecordID = @RecordID AND
LName = @LName AND
FName = @FName AND
MInit = @MInit
SET @RecordCount = @@ROWCOUNT
RETURN
メソッド/コード。
Int32 intRecCount = Convert.ToInt32(cmdSQL.Parameters["@RecordCount"].Value);
SqlDataAdapter da = new SqlDataAdapter(cmdSQL);
DataSet ds = new DataSet();
da.Fill(ds);
try {
Connection.Open();
cmdSQL.ExecuteNonQuery();
}
catch (Exception ex) {
dbMsg = ex.Message;
}
finally {
Connection.Close();
cmdSQL.Dispose();
cmdSQL.Parameters.Clear();
}
return ds;
}
+1だけでなく、詳細の多くと、質問を考えて良いので、同じように、クエリの実行後、およびパラメータをクリアする前にこの線を移動。ニース。 – Jonathan
ありがとう!私はC#には非常に新しいですが、私はこれを大いに愛し、あなたのような人々から言葉を奨励しています。再度、感謝します! – Asynchronous