表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。无法继承此类。
命名空间: System.Data.SqlClient
程序集: System.Data(在 System.Data.dll 中)
string strconn = "Data Source=xxx;user id=sa;pwd=;initial catalog=gltest";
SqlConnection Conn = new SqlConnection(strconn);
Conn.Open();
// 声明参数
string sql = "insert into users(name,pwd) values (@name,@pwd)";
SqlCommand cmd = new SqlCommand(sql, Conn);
// 添加参数
cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50));
cmd.Parameters.Add(new SqlParameter("@pwd", SqlDbType.NVarChar, 50));
// 为参数赋值
cmd.Parameters["@name"].Value = this.TextBox1.Text;
cmd.Parameters["@pwd"].Value = this.TextBox2.Text;
cmd.ExecuteNonQuery();
Conn.Close();
comm.Parameters.Add()添加参数到参数集即(添加参数列表),add里面的第一个参数是要添加的参数名,第二个参数是参数的数据类型Parameters的作用就是把存储过程执行结束后得到的参数传到程序里。
第一个是参数名,第二个是参数类型,第三个是长度
带参数的sql语句或者是存储过程
sql注入攻击 使用拼接的方式不安全
string sql="select count(*) from where loginId=@loginid and loginPwd=@password"
当使用带参数的sql语句的时候
sql语句会出现参数
如果sql语句中有参数 那么必须在conmmand对象中提供对应的参数和值
创建两个参数对象
string sql="select count(*) from where loginId=@loginid and loginPwd=@password"
SqlParameter paramLoginId=new SqlParameter("@loginId",SqlDbType.VarChar,50)
string constr = "连接语句";
using (SqlConnection con = new SqlConnection(constr))
{
string sql = "select count(*) from uers where loginId and loginPwd=@password";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
//创建两个参数对象
SqlParameter ParaLoginId=new SqlParameter("loginId", SqlDbType.Vatchar, 50)
{
Value=txtLoginId.Text.Trim()//指定参数的值
}
SqlParameter ParaLoginId = new SqlParameter("loginId", SqlDbType.Vatchar, 50)
{
Value = txtLoginPwd.Text.Trim()//指定参数的值
}
cmd.Parameters.Add(ParaLoginId);
cmd.Parameters.Add(ParaLoginPwd);
con.Open();
int r=(int)cmd.ExecuteScalar();