回 帖 发 新 帖 刷新版面

主题:求助 C#中用SQL语句

update 成绩 set 姓名='缪',数学成绩=59,英语成绩=0,Csharp=0,Windows 2000=0,Photoshop=0 where 学号=53127
这个语句有语法错误么?  

回复列表 (共8个回复)

沙发

你看看你的列,如果不是float类型或者int类型,一般赋值的时候都要加‘’,否则很有可能会出错

板凳

for(int i=0;i<a;i++)
                    { 
                        upstr="update chengji set 姓名="+this.myDataSet2.Tables[0].Rows[i][1];
                        upstr +=",数学成绩="+this.myDataSet2.Tables[0].Rows[i][2];
                        upstr += ",英语成绩="+this.myDataSet2.Tables[0].Rows[i][3];
                        upstr += ",Csharp="+this.myDataSet2.Tables[0].Rows[i][4];
                        upstr +=",Windows 2000="+this.myDataSet2.Tables[0].Rows[i][5];
                        upstr +=",Photoshop="+this.myDataSet2.Tables[0].Rows[i][6];
                        upstr += " where 学号="+this.myDataSet.Tables[0].Rows[i][0];                                                                                                                                                                              
                        inst=new OleDbCommand(upstr,myconn);
                        System.Windows.Forms.MessageBox.Show(upstr);
                        inst.ExecuteNonQuery();     }
我是用循环实现多行数据修改的    楼上说这个问题我注意到了  没问题的  但是还是有错

3 楼

试下
update 成绩 set 姓名='缪',数学成绩=59,英语成绩=0,Csharp=0,'Windows 2000'=0,Photoshop=0 where 学号=53127

4 楼

试下
update 成绩 set 姓名='缪',数学成绩=59,英语成绩=0,Csharp=0,[Windows 2000]=0,Photoshop=0 where 学号=53127

5 楼

2楼的“upstr="update chengji set 姓名="+this.myDataSet2.Tables[0].Rows[i][1];”中,似乎漏掉了一个单引号。
upstr="update chengji set 姓名='"+this.myDataSet2.Tables[0].Rows[i][1];
upstr +="',数学成绩="+this.myDataSet2.Tables[0].Rows[i][2];

不知道错误是否是由这个引起的?

6 楼

sql语句建议都先在查询分析器里先试过。

7 楼

学号是数字类型的吗?不是的话也要加上引号。

8 楼

update 成绩 set 姓名='缪',数学成绩='59',英语成绩='0',Csharp='0',Windows 2000='0',Photoshop='0' where 学号='53127'

是不是都没加但引号?

我来回复

您尚未登录,请登录后再回复。点此登录或注册