这对我来说没什么意义,我从来没有见过这个,虽然也许我只是天真。我已经花了超过2.5小时的时间试图找到解决方案,但没有任何结果。
我正在使用带有win表单的Visual Studio和MySQL插件将数据插入数据库,当我进入数据库时(代码运行后)我发现字段都是0。
我最初用真实的用户输入数据填写查询,为了调试我在运行之前不久输出了查询的内容,结果完全符合预期。
我现在正在尝试在查询中指定原始测试数据,它仍然会转换相同的结果。我没有说过在任何领域都放0个。
有问题的代码如下。由于显而易见的原因,我已经审查了一些连接信息,但连接正在我的工作。
String connectionStringThreaded = "server=**censored**;uid=**censored**;pwd=**censored**;database=**censored**;";
MySqlConnection connection = new MySqlConnection();
connection.ConnectionString = connectionStringThreaded;
connection.Open();
//Loading data into list box.
//Loading the existing users into edit list box
MySqlCommand loadCommand = new MySqlCommand();
loadCommand = connection.CreateCommand();
loadCommand.CommandText = "INSERT INTO Users VALUES (Username = 'Test', FirstName = 'Test', Surname = 'Test', Mobile = '123456789', Password = 'Test', SMSID = '1234', Status = 'DIS')"; //Query text
loadCommand.ExecuteNonQuery();
此代码运行时不会抛出任何异常,但我不知道发生了什么。我已附加了此代码在mySQL数据库中输出的结果的图像。
结果图片:
答案 0 :(得分:1)
您的MySQL INSERT
语法不正确。 MySQL提供3个版本(http://dev.mysql.com/doc/refman/5.7/en/insert.html)
INSERT INTO table ( col1, col2, col3 )
VALUES ( 'x', 123, NULL )
或者:
INSERT INTO table SET col1 = 'x', col2 = 123, col3 = NULL
或者:
INSERT INTO table ( col1, col2, col3 )
SELECT 'x', 123, NULL
您似乎正在使用第二种语法,但缺少必需的SET
关键字。
答案 1 :(得分:1)
您没有执行命令并指定CommandType,如下所示:
loadCommand.CommandType = CommandType.Text;
....
loadCommand.ExecuteNonQuery();
根据Microsoft的说法,在实例化命令时可能会更好:
MySqlCommand loadCommand = new MySqlCommand(
queryString, connection); //queryString is your SQL