C# 我在执行命令时遇到了致命错误

C# 我在执行命令时遇到了致命错误,c#,mysql,C#,Mysql,C#代码://这里我试图在表中插入值 case true: Connection.Connect(); int fk_pic = IdPic(); string insertWork = "INSERT INTO work (fk_id_pic, fk_login, university, lesson, name, info, date_work, price) VALUES (@fk_pic, @fk_login, @university, @lesson,

C#代码://这里我试图在表中插入值

 case true:
     Connection.Connect();
     int fk_pic = IdPic();
     string insertWork = "INSERT INTO work (fk_id_pic, fk_login, university, lesson, name, info, date_work, price) VALUES (@fk_pic, @fk_login, @university, @lesson, @name, @info, @date_work, @price); Allow User Variables = true;";
     MySqlCommand work = new MySqlCommand(insertWork, Connection.Connect());
     work.Parameters.AddWithValue("@fk_pic", fk_pic);
     work.Parameters.AddWithValue("@fk_login", Program.form1.login);
     work.Parameters.AddWithValue("@university", textBox1.Text);
     work.Parameters.AddWithValue("@lesson", textBox2.Text);
     work.Parameters.AddWithValue("@name", textBox3.Text);
     work.Parameters.AddWithValue("@info", richTextBox1.Text);
     work.Parameters.AddWithValue("@date_work", DateTime.Now);
     work.Parameters.AddWithValue("@ price", textBox4.Text);
     work.ExecuteNonQuery();
     Connection.Disconnect();
     break;
SQL查询:

创建表pic
( 
id\u pic整数无符号非空自动增量注释“图像id”,
标题字符(45)非空注释“图像名称”,
who_add CHAR(30)非空注释“who add this image”,
img LONGBLOB不为空,
约束pkId_pic主键(id_pic)
) 
注释“图片托管表”;

不知道该怎么办。等待响应)

更改名为“name”的列或变量的名称

name/name通常是一个保留字


这可能就是问题所在。

请记住,mysql.net连接器中的参数标识符是
,而不是
@

随机评论

查看SQL代码,我注意到您对听起来更像
varchar
字段的字段使用了
char
。将列定义为char时,它将为放入表中的所有条目保留定义的空间量

例如:

create table test (
    myvalue char(255)
)

无论您只在
myvalue
列中输入“a”或“hello world”,它都会在磁盘上保留255个字符的字符串空间。请记住这一点。

您可以发布错误的详细信息吗?例如异常消息?“work.Parameters.AddWithValue(“@price”,textBox4.Text);”-可能不应该在“@”后面有空格。您可以提供异常消息和内部异常(如果有)吗?为什么在代码中插入工作表时显示
pic
表结构?