发布网友 发布时间:2022-04-08 03:30
共1个回答
热心网友 时间:2022-04-08 05:00
return ret;补充:com.Parameters.AddRange()和cmd.Parameters.Add();这句有什么差别呢?满意答案PasserBy12级2010-06-03com是SqlCommand 创建的对象.Parameters.AddRange(value);是添加参数 追问: SqlParameter par = new SqlParameter("@UserID", id);这句是在这里 cmd.Parameters.AddRange(value);才被调用的吗? 还有这句SqlParameter par = new SqlParameter("@UserID", id);相当于将id值付给"@UserID吗?原句如下: private string getnamebyid(int id){string sql = "select UserName from userinfo where [UserID]=@UserID";SqlParameter par = new SqlParameter("@UserID", id); string ret = GetScalar1(sql, par);return ret;}public static string GetScalar1(string sqlstr, params SqlParameter[] value){string strcon = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();SqlConnection con = new SqlConnection(strcon);con.Open();SqlCommand cmd = new SqlCommand(sqlstr, con);cmd.Parameters.AddRange(value);string ret = Convert.ToString(cmd.ExecuteScalar());return ret;} 回答: cmd.Parameters.AddRange(value);一般附加参数这样比较安全还有这句SqlParameter par = new SqlParameter("@UserID", id);相当于将id值付给"@UserID吗(这个你理解是对的)id是传多来的参数值@UserID是SQL里面的参数 追问: 为什么附加参数比较安全? 回答: 如果直接用SQL拼接这样是会造成很多的SQL注入知道吗不安全的用系统函数进行赋值会安全狠毒的 补充: 两种方法都好,主要是看个人习惯cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环而已