在方法参数中直接传递值,然后,在方法体中完成参数的创建,避免了在外部还要创建SqlParameter 参数
次方法要用到正则表达式,匹配操作字符串中的@后面的字符,并且要顺序添加一一对应的参数。
class SQLHelper { static string strConn = "server=.;uid=sa;pwd=123456;Database=MyTest"; //在函数过程中装配参数 public static int ExecuteNoneQuery(string commandText, params object[] obj) { using (SqlConnection conn = new SqlConnection(strConn)) { using (SqlCommand cmd = new SqlCommand(commandText, conn)) { //添加参数 if (obj != null && obj.Length != 0) {
//使用正则表达式匹配变量参数 MatchCollection mc = Regex.Matches(commandText,@"@\w+"); for (int i = 0; i < mc.Count; i++) { cmd.Parameters.AddWithValue(mc[i].Value,obj[i]); } } //打开连接 if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); } return cmd.ExecuteNonQuery(); } } } }