2016-08-10 10 views
0

Windowsフォームインターフェイスを使用してデータベースにデータを挿入するだけです。 私はコードが正しいと思うが、それは私に "間違った構文のキーワード 'ユーザー'と言っているエラーを与えている。WindowsフォームとSQL cmd構文エラー

image with tables names here

try 
{ 
      string cmdString = @"insert into User (userName, userEmail, userBalance, userTickets) VALUES (@userName, @userEmail, @userBalance, @userTickets)" + 
           "insert into Account (accountName, accountPassword) VALUES (@accountName, @accountPassword)"; 

      // Connection 
      SqlConnection con = new SqlConnection("i dont know if is safe to show the con string...but i know its right"); 
      SqlCommand cmd = new SqlCommand(cmdString, con); 
      con.Open(); 

      cmd.Parameters.Add("@userName", SqlDbType.NVarChar).Value = txtUserName.Text; 
      cmd.Parameters.AddWithValue("@userEmail", SqlDbType.NVarChar).Value = txtemail.Text; 
      cmd.Parameters.AddWithValue("@userBalance", SqlDbType.Money).Value = 100; 
      cmd.Parameters.AddWithValue("@userTickets", SqlDbType.Int).Value = 3; 
      //cmd.Parameters.AddWithValue("@accountID", null); 
      cmd.Parameters.AddWithValue("@accountName", SqlDbType.NVarChar).Value = txtUserName.Text; 
      cmd.Parameters.AddWithValue("@accountPassword", SqlDbType.NVarChar).Value = txtPassword.Text; 

      // Execute command 
      cmd.ExecuteNonQuery(); 
      con.Close(); 
      //MessageBox.Show("Data saved!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); 

      Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString(), "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

誰かが私に手を与えることはできますか?

答えて

1

Userは予約語です。あなたは角括弧で囲む必要があり

string cmdString = @"insert into [User] (userName, userEmail, userBalance, userTickets) VALUES (@userName, @userEmail, @userBalance, @userTickets)" + 
        "insert into Account (accountName, accountPassword) VALUES (@accountName, @accountPassword)"; 

はこれを行うには、テーブル名ではなく、予約語としてそれを治療するためのSQLを教えてくれます。

+0

Wooow ...本当に?だから、イライラしていますが、解決するのはとても簡単です。ありがとうございました。 –

+0

@Manuel Costaまた、コマンドをセミコロン ';'で終わらせてください。そして、それらの間に改行が必要な場合もあります。 – shawnt00