2013-06-20 35 views
-5

不執行請求:c#。 MySQL的。 「插」。錯誤

  mycmd = new MySqlCommand(); 
      mycmd.CommandText = "INSERT INTRO 'users' (userid, username, password, ipaddr, port, channel, inbox, inboxadm, access, other) VALUES (NULL, 'username2', 'password2', NULL, NULL, 'channel2', NULL, NULL, 'access2', NULL);"; 
      mycmd.Connection = mconnection; 
      mycmd.Parameters.AddWithValue("username2", message.Login); 
      mycmd.Parameters.AddWithValue("password2", message.Password); 
      mycmd.Parameters.AddWithValue("channel2", "channel"); 
      mycmd.Parameters.AddWithValue("access2", 0); 
      mycmd.CommandType = CommandType.Text; 

      mycmd.ExecuteNonQuery(); 

幫助找到並要求糾正錯誤。

Exapmle phpmyadmin的SQL查詢:

INSERT INTO `shachat`.`users` (`userid`, `username`, `password`, `ipaddr`, `port`, `channel`, `inbox`, `inboxadm`, `access`, `other`) VALUES (NULL, 'myacc', 'mypass', NULL, NULL, 'administratorY', NULL, NULL, '9', NULL); 
+0

請指定您收到的錯誤消息 –

+0

可能有助於指定您的錯誤,爲我們定義架構並添加任何其他相關詳細信息。 –

+0

錯誤不存在,在「mycmd.ExecuteNonQuery();」之後不會出現。 – BrainOverflow

回答

0

馬上蝙蝠,我相信

INSERT INTRO 'users' 

應該

INSERT INTO users 
+0

謝謝!它解決了一個問題! – BrainOverflow

4

的問題是INSERT 'INTRO' 的關鍵詞INSERT INTO

2

除了INSERT INTRO問題之外,您還需要在參數前添加「at」符號。另外,字符值周圍不需要單引號;他們會在這裏導致一個錯誤。

表名周圍的單引號也是一個問題;不要將它們與反引號混淆。在這樣的情況下,表名不是保留字,我寧願去沒有反引號。

mycmd = new MySqlCommand(); 
mycmd.CommandText = 
    "INSERT INTO users (userid, username, password, ipaddr, port, channel, inbox, inboxadm, access, other) " + 
    "VALUES (NULL, @username2, @password2, NULL, NULL, @channel2, NULL, NULL, @access2, NULL);"; 
mycmd.Connection = mconnection; 
mycmd.Parameters.AddWithValue("@username2", message.Login); 
mycmd.Parameters.AddWithValue("@password2", message.Password); 
mycmd.Parameters.AddWithValue("@channel2", "channel"); 
mycmd.Parameters.AddWithValue("@access2", 0); 
mycmd.CommandType = CommandType.Text; 

mycmd.ExecuteNonQuery(); 
+0

和表名.... – Steve

+0

謝謝@Steve - 好趕上!我習慣於在MySQL查詢中看到不必要的單引號和反引號,我甚至不會再看到它們:)我會更新我的答案。 –