c#数据库写入错误
报错因为你拼的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 这个参数组里的值传进去。