C# winform 防止sql注入

stringusername=txtUserName.Text.ToString();stringpwd=txtPwd.Text.ToString();stringsql... string username = txtUserName.Text.ToString();
string pwd = txtPwd.Text.ToString();

string sql = "select count(*) from zhuce where username='" + username + "' and pwd='" + pwd + "'and type = '" + power.Text + "'";

SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();

SqlCommand cmd = new SqlCommand(sql, conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());

conn.Close();
各位大虾上面这个代码怎么能够防止SQL注入?如果是其他代码呢?谢谢给位了,说得好的加分,谢谢给位了
4291727的我就是不知道什么是参数传值
hetongyang的怎么做一个存储过程?string sql=“存储过程名字”;这句应该怎么写,我是初学者,各位见谅
摆渡浮桥的 输入后显示 上下文不存在varchar ,Item缺少USING引用并且找不到可用引用
展开
 我来答
snfnyygt
2010-12-08 · TA获得超过1625个赞
知道大有可为答主
回答量:1469
采纳率:0%
帮助的人:1332万
展开全部
唯一的解决办法是字符串过虑, 就算你写了存储过程,其内部原理他基本上是字符串的合并。根本无法从根本上解决SQL注入
唯一行之有效的办就只有一个 那就是 检查字符串里是否有单引号 如果有 把 字符串里的 单引号 全去掉. 如果 值类开 就是检查 or SQL 注入的精髓就是合理使用 单引号和 or 改变 sql 语意 只要你把 字符串中的 这两个东西 干掉就安全了 不过 字符过滤很费时间 尤其是 论坛一类的 需要提交文章的系统
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hetongyang
2010-12-08 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:161万
展开全部
防止SQL注入,就是你写一个存储过程
在里面调用
不要将SQL语句写在代码里
string sql=“存储过程名字”;
cmd.CommandType = CommandType.StoredProcedure;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摆渡浮桥
推荐于2016-01-11 · TA获得超过3629个赞
知道大有可为答主
回答量:1610
采纳率:100%
帮助的人:2213万
展开全部
通过参数传递:
string sql = "select count(*) from zhuce where username=@username and pwd=@pwd and type = @type";
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
conn.Open();

SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@username",SqlDbType.VarChar,30);
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,30);
cmd.Parameters.Add("@type",SqlDbType.VarChar,10);
cmd.Parameters["@username"].Value = username;
cmd.Parameters["@pwd"].Value = pwd;
cmd.Parameters["@type"].Value = power.Text;

int count = Convert.ToInt32(cmd.ExecuteScalar());

conn.Close();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琪琪杰杰和祥祥
2010-12-08
知道答主
回答量:12
采纳率:0%
帮助的人:10.5万
展开全部
改成用参数传值就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式