c#数据库写入错误

 我来答
376710727
2016-12-27 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1197万
展开全部

报错因为你拼的SQL语句语法不对, 引号没有成对出现。

1、重新拼接SQL语句,

string sql =" insert into ....  VALUES  ( '"+lb.Text+"' , '"+lb2.Text+"' , '" +lb3.Text +"' );

拼接时一定是  "  ' " + 变量+" '  "这样出现的。 虽然int类型在sql语句中可以不用引号,但是从C#中拼接还是统一都带上单引号为好,是不会报错的。

2、使用Parameter来传递参数。

拼接SQL会有很多问题,而且看起来很不美观。

最常见的会有SQL注入漏洞,比如查询的时候用户输入个  "0 or  1=1", 拼到你的SQL语句里面就是"select * from Table where  ID =  0 or 1=1 ;  这样会把所有的信息都查出来,很不安全。

用sqlParameter则可以避免此类问题:

string sql = "insert into table (Name,Age) Values (@Name,@Age);

var paras = new SqlParameter[]

{

    new SqlParameter("@Name", lb1.Text),

    new SqlParameter("@Age", lb2.Text),

}

cmd.ExcuteNonQuery(conn,type.Text ,sql,paras);   

//这个是执行的函数,可以自己封装,里面有很多重载。传递的就是连接字符串、sql类型、

//语句、变量等

程序会自动把语句中的@Name @Age当做变量,把你写的paras 这个参数组里的值传进去。 

百度网友b1fa122
2016-12-27 · TA获得超过893个赞
知道大有可为答主
回答量:1059
采纳率:100%
帮助的人:992万
展开全部
sql拼接有误,'1,'1,1,少了个'.
应该是'1','1'
追问

代码要怎么改

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式