求助 sql插入语句问题

s844876674 2011-12-08 02:39:15
关于一个数据库插入数据的问题
我的代码是:

cmd.CommandText = "insert into QlearningResultTable1(LearningStep,ProcessNums,LoseNums,ProcessingRate,AverageCost) values(" + stepNumSample + "," + processNumsample + "," + loseNumSample + "," + processRate + "," + aveCostSamples + ")";
cmd.ExecuteNonQuery();

运行后报错:
在此上下文中不允许使用名称 "非数字"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
其中,我插入的数据前3项都是int型,后2项是float类型
各位大神 给我分析下 错在哪了。。。
...全文
155 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cmd.CommandText = "insert into QlearningResultTable1(LearningStep,ProcessNums,LoseNums,ProcessingRate,AverageCost) values(" + stepNumSample.ToString() + "," + processNumsample.ToString() + "," + loseNumSample.ToString() + "," + processRate.ToString() + "," + aveCostSamples.ToString() + ")";
回复

cmd.CommandText = "insert into QlearningResultTable1(LearningStep,ProcessNums,LoseNums,ProcessingRate,AverageCost) values(" + stepNumSample.ToString() + "," + processNumsample.ToString() + "," + loseNumSample.ToString() + "," + processRate.ToString() + "," + aveCostSamples.ToString() + ")";

回复
你的变量定义的不正确
回复
LearningStep,ProcessNums,LoseNums,ProcessingRate,AverageCost
这些字段是什么类型呀,如果不是数值型。使用单引号。
values('" + stepNumSample + "','" + processNumsample + "','" + loseNumSample + "','" + processRate + "','" + aveCostSamples + "')";
回复
rui90102 2011-12-08
varchar 类型的外面要加 '',
比如’" + processNumsample + "‘
回复
nicholas235 2011-12-08
你这样很容易注入啊,
最好是这样用:
"insert into table (a) values (@key)"
cmd.Parameters.Add(new SqlParameter("@key","Value"));
回复
fhpu168 2011-12-08
('" + stepNumSample + "','" + processNumsample + "','" + loseNumSample + "','" + processRate + "','" + aveCostSamples + "')"

加个'
回复
ayzen1988 2011-12-08
你的字段都不是數字類型

你的值都沒用 單引號 引起來


cmd.CommandText = "insert into table (a) values (' "+aValue+" ') ";
回复
z_f_p 2011-12-08
调试,把监控的Sql语句放到数据执行,查看错误!!!
回复
peng2739956 2011-12-08
[Quote=引用 3 楼 woshisadshiwo 的回复:]

这个只能设断点,看下SQL语句中的变量都是不是正确的,可以将SQL语句放到数据库中去执行下,很容易找到错误的位置~
[/Quote]
+1
回复
home_pc 2011-12-08
代码没有问题,你把拼接的sql语句取出来看一看正确不?
把这个语句直接用查询管理器运行以下看出现什么情况!
回复
烟波钓 2011-12-08
[Quote=引用 1 楼 findcaiyzh 的回复:]
你stepNumSample 等变量中有非数字的字符了,设置个断点,看看都是什么.
[/Quote]+
回复
牧云 2011-12-08
这个只能设断点,看下SQL语句中的变量都是不是正确的,可以将SQL语句放到数据库中去执行下,很容易找到错误的位置~
回复
请确保你传递 的值是否符合要求
回复
宝_爸 2011-12-08
你stepNumSample 等变量中有非数字的字符了,设置个断点,看看都是什么.
回复
相关推荐
发帖
智能路由器
创建于2018-06-15

638

社区成员

智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
申请成为版主
帖子事件
创建了帖子
2011-12-08 02:39
社区公告
暂无公告