您的位置:首页 > 数据库

[C#] 数据库 参数化 查询

2012-04-11 17:00 225 查看
为了数据库注入漏洞, 我们在对数据库进行查询的时候, 要使用参数化查询

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace 参数化查询
{
class Program
{
static void Main(string[] args)
{
//提示用户输入用户名和密码
Console.WriteLine("请输入用户名:");
string name = Console.ReadLine().Trim();
Console.WriteLine("请输入密码:");
string pwd = Console.ReadLine().Trim();
//新建数据库连接
using (SqlConnection conn = new SqlConnection(GetConnectString()))
{
conn.Open();//打开数据库连接

//创建数据库查询命令
using (SqlCommand cmd = conn.CreateCommand())
{
//定义查询语句,其中@username和@passwd是参数变量
cmd.CommandText = "SELECT COUNT(*) FROM userinfo WHERE NAME=@username and PASSWORD=@passwd";
//将name的数据赋值给查询语句中的username
cmd.Parameters.Add(new SqlParameter("username", name));
//将pwd的数据赋值给查询语句中的passwd
cmd.Parameters.Add(new SqlParameter("passwd", pwd));
//执行查询后,返回查询结果中的第一行第一列
int i = Convert.ToInt32(cmd.ExecuteScalar());
if (i > 0)
{
Console.WriteLine("登录成功!");
}
else
{
Console.WriteLine("登录失败!");
}
}
}
Console.ReadKey();
}
//返回数据库连接字符串
static string GetConnectString()
{
return "Data Source=127.0.0.1;Initial Catalog=db1;Integrated Security=SSPI";
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: