复习ADO.NET的参数查询 Parameter

1、使用SqlParameter类表示 SqlCommand 的参数。

2、SqlParameter提供两个参数,参数别名(@前缀)与参数值。

3、SqlCommand提供一个Parameter属性,该属性表示SqlParameter的集合,使用Add方法添加(记得new)。

4、Parameter属性表示的是一个集合,不使用了要清空。

练习,登录验证:

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5 
 6             while (true)
 7             {
 8                 Console.WriteLine("用户名");
 9                 string name = Console.ReadLine();
10                 Console.WriteLine("密码");
11                 string pwd = Console.ReadLine();
12 
13             string constr = @"server=.\sqlexpress;database=MyDataBase;uid=sa;pwd=sa";
14             using (SqlConnection sqlconn = new SqlConnection(constr))
15             {
16                 //老方法
17                 //string cmdstr = string.Format(@"select * from loginn where uname='{0}' and upwd='{1}'",name,pwd);
18                             //参数化查询
19                                 string cmdstr = @"select * from loginn where uname=@name1 and upwd=@pwd1";
20                                                                               //@name1,@pwd1仅仅是别名而已,相当于局部变量
21                 using (SqlCommand cmd = new SqlCommand(cmdstr, sqlconn))
22                 {
23                     //加参数
24                     cmd.Parameters.Add(new SqlParameter( "@name1", name));//把name中的值赋给@name1
25                    cmd.Parameters.Add(new SqlParameter("@pwd1", pwd));   //注意Add方法中是new了一个 SqlParameter
26                      //  cmd.Parameters.AddWithValue("@pwd1", pwd);//此方法内部实现同Add,推荐用前者
27                     if (sqlconn.State == ConnectionState.Closed)
28                     {
29                         sqlconn.Open();
30                     }
31                    
32 
33                         if (Convert.ToInt32(cmd.ExecuteScalar()) == 1)
34                         {
35                             Console.WriteLine("登录成功");
36                             break;
37                         }
38                         else
39                         {
40                             Console.WriteLine("重新输入");
41                             continue;
42                         }
43                     }
44                    
45                 }
46 
47             }
48             Console.ReadKey();
49         }
50     }

如有错误,谢谢指正

原文地址:https://www.cnblogs.com/net515/p/2549872.html