【问题标题】:c# . MySql. "INSERT". errorC# 。 mysql。 “插入”。错误
【发布时间】:2013-06-17 13:45:18
【问题描述】:

请求未执行:

            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();

帮助查找并纠正请求中的错误。

例如 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);

【问题讨论】:

  • 请说明您收到的错误信息
  • 可能有助于指定您的错误,为我们定义架构,并添加任何其他相关详细信息。
  • 错误不存在,在“mycmd.ExecuteNonQuery ();”之后什么也没发生。

标签: c# mysql


【解决方案1】:

问题是 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();
    

    【讨论】:

    • 谢谢@Steve - 很好!我已经习惯了在 MySQL 查询中看到不必要的单引号和反引号的蒸汽痕迹,以至于我什至不再看到它们了:) 我会更新我的答案。
    【解决方案3】:

    我相信马上就开始

    INSERT INTRO 'users'
    

    应该是

    INSERT INTO users
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 2011-08-12
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多