[ad_1]
Com2.CommandText = "update dbo.UserRecords set Last Login=" & dtpLastLog2.Value.ToString & "where " & txtEmailName.Text & "=Email"
問題は、プログラムが例外をスローしていることです
System.Data.SqlClient.SqlException: 'Incorrect syntax near 'Login'.'
私が試したこと:
再度ログインして (dtpLastLog2 の値) 時刻と日付を変更し、データベース (dbo.UserRecord) に時刻と日付を表示しようとしています。 データベースに保存された電子メールとテキストボックス名 txtEmailName に入力した電子メールを比較しようとしているステートメントが同じ値の場合。 そうであれば、変更が発生します。
解決策 1
その単語の前の部分を見てください。 set Last Login
. そこにある「最後」とは何ですか? 列の実際の名前は 2 語ですか、それともリンク文字がありませんか? それが列の実際の名前である場合は、角括弧で囲む必要があります。 set [Last Login]
.
しかし、入力値の有効性をチェックせずに文字列連結を使用してステートメントを作成しているという点で、上記のコードにはさらに深刻な問題があります。 そのため、データベースは SQL インジェクション攻撃に対して脆弱であり、システムを危険にさらしたり、完全に破壊したりする可能性があります。 どのような場合でも、データベース アクセスにはパラメーター化されたクエリを使用する必要があります。 見る bobby-tables.com: SQL インジェクションを防止するためのガイド[^].
[ad_2]
コメント