复习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 }
如有错误,谢谢指正