[ad_1]
テーブルを更新したいのですが、特定の行に挿入する時間が必要でした
私を助けてください
これが私のコードです。 私は 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();
ストアドプロシージャのコードは次のとおりです。
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’ にはパラメータが必要です」と表示されます。@ユーザー名‘, これは提供されませんでした.’
つまり、
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
デバッガーを使用すると、おそらくここにあることがわかります。
cmd.Parameters.AddWithValue("@Username", username);
の username
変数が含まれています null
.
ここで、その理由を突き止める必要があります。デバッガーを使用してコードを追跡し、値が配置されると予想される場所を見つけます。
それはどのような値ですか? それはどこから来たのですか? なぜ価値がないのでしょうか?
これにはアプリが実行されている必要があるため、デバッガーを使用してこれを見つけることができます。コードを実行できないため、これを行うことはできません!
解決策 3
既存の回答により、直面している問題の原因が何であるかが明確にわかります。 まず調べてください。 [check the @username parameter]
別の可能性:
コードは実際には問題ないように見えます (@username に問題がない場合)
初心者ということで、ビルドや設定を見落としている可能性もあると思います。
– 正しいデータベースに接続しているかどうかを確認します (これは web.config の接続文字列にあります)。
– プロジェクトを正しくビルドし、正しいバージョンを実行しているかどうかを確認してください。
デバッガーを使用してエラーを掘り下げることをお勧めします。 問題の根本原因を特定し、最終的に解決するのに役立ちます。
[ad_2]
コメント