SQL INSERT语句不工作
我已经写了一个样本插入txt文件到MySQL数据库,但我得到一个错误的未知列_FnameSQL INSERT语句不工作
我的代码:
string strQuery = "insert into tblFiles(FName,FData) values (_FName, _FData)";
MySqlCommand cmd = new MySqlCommand(strQuery);
cmd.Parameters.AddWithValue("_FName", filename);
cmd.Parameters.AddWithValue("_FData", bytes);
即使这同样的错误:
cmd.Parameters.Add("_FName", MySqlDbType.VarChar).Value = filename;
cmd.Parameters.Add("_FData", MySqlDbType.LongText).Value = bytes;
像_FName这样的声音不被命令解释为令牌/参数。
尝试使用@_FName,而不是...
试试这个
string strQuery = "insert into tblFiles(FName,FData) values (?, ?)";
请注意,如果您正在使用MySQL的.NET本地提供程序,那么您可能(可能) 能够脱离命名参数。但是,如果您使用的是OleDB接口,参数是位置的(未命名),并且必须用“?”标记 字符。
而不是“_FName”使用“@_FName”或只是“?”。这样,参数得到适当的替换。
您是否需要在参数名称之前添加@,以便mysql可以理解值,列名和文字之间的差异。
对不起,“价值”我的意思是参数。 – 2011-04-05 09:27:29
那么,你的新MySqlCommand()是否缺少连接?另外,您应该将参数写为@Name而不是_Name。
尝试:
string strQuery = "insert into tblFiles(FName,FData) values (@FName, @FData)";
MySqlCommand cmd = new MySqlCommand(strQuery);
cmd.Parameters.AddWithValue("@FName", filename);
cmd.Parameters.AddWithValue("@FData", bytes);
这也会引发错误 – Dotnet 2011-04-05 09:25:21
这应该做的伎俩:
cmd.Parameters.AddWithValue("@_FName", filename);
cmd.Parameters.AddWithValue("@_FData", bytes);
更多的信息,甚至实例见this MSDN link。
我想你需要在你想用作参数名的每个字符串前加@。 – 2011-04-05 09:21:37
不是MySql的人,但不应该在值内的参数有@前缀?所以它看起来像@_FName,@ _FData? – 2011-04-05 09:21:43
请输入确切的错误。 – Ovi 2011-04-05 09:22:05