【解決方法】「プロシージャまたは関数 ‘updat’ には、指定されていないパラメーター ‘@username’ が必要です。」

プログラミングQA


テーブルを更新したいのですが、特定の行に挿入する時間が必要でした
私を助けてください

これが私のコードです。 私は C# の初心者です

C#
label1.Text = DateTime.Now.ToLongTimeString();

            con.Open();

            SqlCommand cmd = new SqlCommand("Updat", con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@mode2", "Update");
            cmd.Parameters.AddWithValue("@Timein", label1.Text);
            cmd.Parameters.AddWithValue("@Username", username);
            cmd.ExecuteNonQuery();
            MessageBox.Show("TIMED IN");
       
            con.Close();

ストアドプロシージャのコードは次のとおりです。

SQL
CREATE PROCEDURE [dbo].[Updat]
	@mode2 nvarchar(10),
	@Timein varchar(50),
	@Username nvarchar(50)
As
If @mode2 = 'Update'
BEGIN
UPDATE Login1
SET
Username = @Username,
Timein = @Timein
END

私が試したこと:

何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない
何をすればいいのかわからない

解決策 1

引用:

何をすればいいのかわからない

エラーメッセージとコードを読んでください!
「プロシージャまたは関数 ‘updat’ にはパラメータが必要です」と表示されます。@ユーザー名‘, これは提供されませんでした.’
つまり、

SQL
CREATE PROCEDURE [dbo].[Updat]
@mode2 nvarchar(10),
@Timein varchar(50),
@Username nvarchar(50) -- THIS PARAMETER here
As
If @mode2 = 'Update'
BEGIN
UPDATE Login1
SET
Username = @Username, -- THIS PARAMETER here
Timein = @Timein
END

呼び出し元のコードで提供されていないため、値はありません。

あなたが何をしたいのかわからないので、私たちは何もできません。
パラメータが欠落している別の場所からプロシージャが呼び出されていないことを確認してください。

解決策 2

デバッガーを使用すると、おそらくここにあることがわかります。

C#
cmd.Parameters.AddWithValue("@Username", username);

username 変数が含まれています null.

ここで、その理由を突き止める必要があります。デバッガーを使用してコードを追跡し、値が配置されると予想される場所を見つけます。
それはどのような値ですか? それはどこから来たのですか? なぜ価値がないのでしょうか?

これにはアプリが実行されている必要があるため、デバッガーを使用してこれを見つけることができます。コードを実行できないため、これを行うことはできません!

解決策 3

既存の回答により、直面している問題の原因が何であるかが明確にわかります。 まず調べてください。 [check the @username parameter]

別の可能性:

コードは実際には問題ないように見えます (@username に問題がない場合)

初心者ということで、ビルドや設定を見落としている可能性もあると思います。

– 正しいデータベースに接続しているかどうかを確認します (これは web.config の接続文字列にあります)。

– プロジェクトを正しくビルドし、正しいバージョンを実行しているかどうかを確認してください。

デバッガーを使用してエラーを掘り下げることをお勧めします。 問題の根本原因を特定し、最終的に解決するのに役立ちます。

コメント

タイトルとURLをコピーしました