我已经写了一个示例来插入文本文件到MySql DB,但是我收到一个错误,因为未知列Fname 我的代码:
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;
答案 0 :(得分:1)
试试这个
string strQuery = "insert into tblFiles(FName,FData) values (?, ?)";
请注意,如果您正在为MySQL使用.NET本机提供程序,那么您可能(只是可能) 能够逃脱命名参数。但是,如果你正在使用 OleDB接口,参数是位置(未命名),必须标记 用“?”字符。
答案 1 :(得分:1)
而不是“_FName”使用“@_FName”或简单地使用“?”。这样,参数就可以正确替换。
答案 2 :(得分:1)
您是否需要在参数名称之前添加@,以便mysql可以理解值,列名和文字之间的区别。
答案 3 :(得分:1)
听起来_FName没有被命令解释为令牌/参数。
尝试使用@_FName代替......
答案 4 :(得分:1)
这应该是诀窍:
cmd.Parameters.AddWithValue("@_FName", filename);
cmd.Parameters.AddWithValue("@_FData", bytes);
有关详细信息,请参阅this MSDN link。
答案 5 :(得分:0)
那么,您的新MySqlCommand()是否缺少连接?此外,您应该将参数写为@Name而不是_Name。
答案 6 :(得分:0)
尝试:
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);