C#实现向SQLSever一个表里插入一条记录

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:19:43
string insertString = "INSERT INTO dbo.selection(stu_id,course_id,course_name) VALUES ("+sn+","+i+","+q+")";
SqlCommand command3 = new SqlCommand(insertString,connection);
command3.ExecuteNonQuery();

里面sn,i,q都是string类型字符串,stu_id,course_id,course_name都是char(10)类型的。

但是调试的时候出现在此上下文中不允许使用名称 "Physics"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
"Physics"就是传入的那个q了,请问怎么解决?

sn、i、q 是字符串的话,你sql 要这样写
string insertString = "INSERT INTO dbo.selection(stu_id,course_id,course_name) VALUES ('"+sn+"','"+i+"','"+q+"')";

注意加单引号

因为你插入的是字符串,要符合Sql语句标准
比如你的sn是string类型,且sn=123456,那么Sql语句就应该是
insert into dbo.selection(stu_id)VALUES ('12345')
但是你的Sql语句实际上是
insert into dbo.selection(stu_id)VALUES (12345)
少了一对单引号--''

所以你要改为
string insertString = "INSERT INTO dbo.selection(stu_id,course_id,course_name) VALUES ('"+sn+"','"+i+"','"+q+"')";


string insertString = "INSERT INTO dbo.selection(stu_id,course_id,course_name) VALUES ("+sn+","+i+","+q+")";

注意你查询语句的格式 values('')英文输入法状态下单引号。还有那个Physics,如果还报错,最好改成_Physics