2016-11-26 10 views
-1

私はこの問題に私のクエリで直面しています。親切に私がそれを解決するのを手伝ってください。ここデータベースでこのステートメントを更新できない理由

MD = "UPDATE librarysystem.audit set timeout = '" & Today + "" + TimeOfDay & "' AND status='0' WHERE username = '" & AccountId & "'AND status = '1'" 
      cmd = New MySqlCommand(MD, con) 
      cmd.ExecuteNonQuery() 

はコードです:

connect() 

    Dim result As Integer = MessageBox.Show("Are You Sure You Want To LOGOUT?", "Are You?", MessageBoxButtons.YesNo) 
    If result = DialogResult.No Then 
     Me.Show() 
    ElseIf result = DialogResult.Yes Then 

     connect() 
     Dim time As DateTime 
     time = Date.Today 
     Dim a As Integer = 0 
     MD = "UPDATE librarysystem.audit set timeout = '" & Today + "" + TimeOfDay & "' AND status='0' WHERE username = '" & AccountId & "'AND status = '1'" 
     cmd = New MySqlCommand(MD, con) 
     cmd.ExecuteNonQuery() 

     AccountSettings.Hide() 
     BorrowedBooks.Hide() 
     LogHistory.Hide() 
     Login.Hide() 

     ReturnedBooks.Hide() 
     SearchBooks.Hide() 

    End If 
End Sub 

SQLの深い激論の一つは、あなたが通常で一つの言語を埋め込んだということです^^事前に

+0

ER図やデータ辞書など、データベースに関する詳細を追加できますか? –

+0

また、plsはいくつかのコードスニペットを追加します。単なるSQL構文で問題を判断するのは本当に難しいです。 –

+0

あなたはこのエラーを共有しませんでしたが、SQL PArametersを使用して問題を解決する可能性は非常に高いです。また、DBプロバイダーオブジェクトを再利用しないでください。 – Plutonix

答えて

0

をありがとう別のそれで、両方の言語で物事をはっきりと読むことが難しくなります。ここにあなたのVBから抽出されたSQLがあります。

UPDATE librarysystem.audit 
    set timeout = '" & Today + "" + TimeOfDay & "' 
    AND status='0' 
WHERE username = '" & AccountId & "'AND status = '1'" 

ここでは、いくつかのサンプルの値が

UPDATE librarysystem.audit 
    set timeout = '2016-11-26 13:14:15' 
    AND status='0' 
WHERE username = 'SomeUserName'AND status = '1' 

を置換してあなたのDBMS上で直接そのステートメントを実行することができ、それが正しく機能している必要があります。しかし、それを見てください。あなたは何を見ますか?

私はANDを参照してください。更新する列のリストに,があるはずです。 ANDは、WHEREおよびON句でのみ機能し、列のリストでは機能しません。

シーケンス番号'SomeUserName'ANDのSQLに空白があります。

あなたのVBプログラムがtimeoutの値を作成したやり方に混乱が生じることもあります。 VB TimeOfDay変数が24時間形式(13:14:15)またはam/pm形式(01:14:15 PM)でレンダリングされるかどうかはすぐには分かりません。

最後に、よくある間違いがあります。 SQLステートメントは、まるで精神病のプログラマーAPLによって1980年代に書かれたかのように、jammed onto one lineです。これにより、あなたの言語の言語プログラムはほとんど読むことができなくなります。

+0

ありがとうございました。欠けているスペースが問題になっています。私は知っています:)もう一度情報をいただき、ありがとうございます。私はたくさんのことを学んだ:D – shinbona

関連する問題