这个是dal里的db类里的一个函数,然后我在设置密码页面出现了一个问题
这个函数是一个参数是sql语句 一个是可变参数
1 public static int executesql(string sqlstr, params SqlParameter[] para)
2 {
3 int n = 0;
4 using (SqlConnection con = new SqlConnection(constr))
5 {
6 using (SqlCommand cmd=new SqlCommand(sqlstr,con))
7 {
8 foreach (SqlParameter p in para)
9 {
10 cmd.Parameters.Add(p);
11 }
12 con.Open();
13 n = cmd.ExecuteNonQuery();
14
15 }
16
17
18 }
19 return n;
20
21 }
我这么调用的怎么有错啊
1 string sql = "insert into password(pwd) values(@pwd)";
2
3 db.executesql(sql, new SqlParameter[] { "@pwd", pwdtextBox.Text.Trim()});
报错:错误 1 无法将类型“string”隐式转换为“System.Data.SqlClient.SqlParameter”
也就是{ "@pwd", pwdtextBox.Text.Trim()} 这两个参数有错
你想用那个对象初始化器的话{}里面是对象,你在这里面再new出来。
嗯 db.executesql(sql, new SqlParameter[]{ new SqlParameter("@pwd",pwdtextBox.Text.Trim())});
SqlParameter不是这样用的,赋值要用:
SqlParameter myParameter = new SqlParameter("@pwd",SqlDbType.varchar);myParameter.Value = pwdtextBox.Text.Trim();
参考:http://www.cnblogs.com/morningwang/archive/2007/06/06/773198.html
嗯 是的
同意顶楼的。