标题:请高手帮我下,谢谢,我找不到这个报错的地方
只看楼主
hans998123
Rank: 2
等 级:论坛游民
帖 子:20
专家分:14
注 册:2011-7-10
结帖率:0
 问题点数:0 回复次数:5 
请高手帮我下,谢谢,我找不到这个报错的地方
高手帮我看看代码,我找不到报错的原因 ... 我用的SqlHelper 然后做一个 更新操作
private void btnModfiy_Click(object sender, EventArgs e)
        {
            string name = txtUserName.Text.Trim();
            string phone = txtPhone.Text.Trim();
            string mail = txtMail.Text.Trim();
            string school = txtSchool.Text.Trim();
            string address = txtAddress.Text.Trim();
            SqlParameter[] sp =
            {
                new SqlParameter("@username",(object)name),
                new SqlParameter("@phone",(object)phone),
                new SqlParameter("@mail",(object)mail),
                new SqlParameter("@school",(object)school),
                new SqlParameter("@address",(object)address)
            };
            string sql = "update T_Student set  stuName,stuPhone,stuEmail,stuAddress,stuSchool where stuName=@username and stuPhone=@phone and stuEmail=@mail and stuAddress=@address and stuSchool=@school";
            SqlHelper.SqlHelper.ExecuteNonQuery(sql,sp);
            MessageBox.Show("修改成功");
        }
以上都没报错
 public  static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
        {
            
            using (SqlConnection conn = new SqlConnection(con))
            {
                if(conn.State == System.Data.ConnectionState.Closed)
                {
                    conn.Open();
                }
                using (SqlCommand cmd = conn.CreateCommand())
                {
                     = sql;
                    if (parameters != null && parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    return cmd.ExecuteNonQuery();//这行报错了 。....  说 ',' 附近有语法错误 ....  我找不到啊 不知道怎么错了  高手帮我看下 谢谢
                }
            }
搜索更多相关主题的帖子: school private address void 
2012-08-15 23:49
yinniannian
Rank: 9Rank: 9Rank: 9
来 自:河北省石家庄
等 级:蜘蛛侠
威 望:2
帖 子:256
专家分:1007
注 册:2011-5-13
得分:0 
你的SQL语法有错误。好好看看update的语法吧。

代做小型软件。
QQ:449795473
2012-08-16 10:14
ZWYyj
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:9
帖 子:124
专家分:587
注 册:2012-8-10
得分:0 
return cmd.ExecuteNonQuery();//括号里应该有参数吧??
2012-08-16 11:14
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
得分:0 
update tablename set colname=colvalue where stuName=@username ;
为什么不定义一个主键studentId呢, where 中带那么多的条件,又不方便,又浪费性能。
2012-08-16 15:58
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
得分:0 
哥们你的更新语句有错误!你是把update T_Student set  stuName,stuPhone,stuEmail,stuAddress,stuSchool where stuName=@username and stuPhone=@phone and stuEmail=@mail and stuAddress=@address and stuSchool=@school
应该是
update T_Student set stuName=@username ,stuPhone=@phone ,stuEmail=@mail ,stuAddress=@address ,stuSchool=@school
where 。。。。
看到差别没
你的数据库根本满足不了你上面的那个Where的成立条件
因为 SqlParameter[] sp =
            {
                new SqlParameter("@username",(object)name),
                new SqlParameter("@phone",(object)phone),
                new SqlParameter("@mail",(object)mail),
                new SqlParameter("@school",(object)school),
                new SqlParameter("@address",(object)address)
            };
你并没有吧这个值如:@username赋给stuName。因为你的那个@username值来源于文本框啊!
我觉得应该是这里的问题
2012-08-21 15:53
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
得分:0 
数据库表设置的也不好,这样写这么多条件会影响速度啊!大神
2012-08-21 15:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-379567-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.284321 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved