C# SQL Insert语句不工作

C# SQL Insert语句不工作,c#,asp.net,mysql,C#,Asp.net,Mysql,我已经编写了一个将txt文件插入MySql数据库的示例,但是我得到了一个错误,即未知列_Fname 我的代码: string strQuery = "insert into tblFiles(FName,FData) values (_FName, _FData)"; MySqlCommand cmd = new MySqlCommand(strQuery); cmd.Parameters.AddWithValue("_FName", filename); cmd.Parameters.AddW

我已经编写了一个将txt文件插入MySql数据库的示例,但是我得到了一个错误,即未知列_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;
试试这个

string strQuery = "insert into tblFiles(FName,FData) values (?, ?)";
请注意,如果您正在使用MySQL的.NET本机提供程序,那么您可能(只是可能) 能够避开命名参数。但是,如果您使用 OleDB接口,参数是位置参数(未命名),必须标记 使用“?”字符。

试试这个

string strQuery = "insert into tblFiles(FName,FData) values (?, ?)";
请注意,如果您正在使用MySQL的.NET本机提供程序,那么您可能(只是可能) 能够避开命名参数。但是,如果您使用 OleDB接口,参数是位置参数(未命名),必须标记
使用“?”字符。

使用“@\u FName”或简单的“?”代替“\u FName”。这样,就可以正确地替换参数。

而不是使用“@\u FName”或简单地使用“?”。这样,就可以正确地替换参数。

难道不需要在参数名称之前添加@,以便mysql能够理解值、列名和文本之间的差异吗。

难道不需要在参数名称之前添加@,以便mysql能够理解值、列名和文本之间的差异吗,还有一个文本。

好吧,您的新MySqlCommand()缺少连接,是吗?另外,您应该将参数写为@Name而不是\u Name。

好吧,您的新MySqlCommand()缺少连接,是吗?另外,您应该将参数写入@Name而不是\u Name。

听起来好像命令没有将\u FName解释为令牌/参数


尝试改用@_FName…

听起来命令没有将该_FName解释为令牌/参数

尝试改用@_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.AddWithValue("@_FName", filename);
cmd.Parameters.AddWithValue("@_FData", bytes);

有关更多信息甚至示例,请参阅。

这应该可以做到:

cmd.Parameters.AddWithValue("@_FName", filename);
cmd.Parameters.AddWithValue("@_FData", bytes);

有关更多信息,甚至示例,请参阅。

我认为需要在每个要用作参数名的字符串之前添加@。不是MySql person,但参数值中不应该有@前缀吗?所以它看起来像@_FName,@_FData?请输入准确的错误。我认为您需要在每个要用作参数名的字符串之前添加@。不是MySql person,但参数值中的参数不应该有@前缀吗?所以它看起来像"FName","FData"?请输入准确的错误。抱歉的是"value"我指的是参数。抱歉的是"value"我指的是参数。