今天在看到朋友说起数据库sql注入问题说得比较复杂,就写了一个简单的列子供大家参考:
SqlConnection con = new SqlConnection(mySql); //用SqlParameter可以防止Sql注入和一些二进制流的问题(如图片) //SqlParameter sp = new SqlParameter("@username",SqlDbType.VarChar,20); 1:生产名字为@username的参数,2:对应数据库的类型,3:字符串的长度 //sp.Value = txtUserName.Text.Trim(); 给参数赋值 //com.Parameters.Add(sp); 添加到com对象 //可以简写成一下形势 SqlParameter[] sp = { new SqlParameter("@userName", txtUserName.Text.Trim()) , new SqlParameter("@userPwd", txtUserPwd.Text.Trim())}; string str = "select * from UserLogin where userName=@userName and userPwd=@userPwd"; //不需要单引号 SqlCommand com = new SqlCommand(str, con); com.Parameters.AddRange(sp); con.Open(); SqlDataReader sdr = com.ExecuteReader();
首次发帖,如有不当之处还望大牛们指点一二,谢谢。