本文主要是介绍cmd.SqlParameter.Add 另一个 SqlParameterCollection 中已包含 SqlParameter 问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
直接说问题:调用DBHelper类时,在一个同一个方法中调用了两个数据操作方法,以下为测试代码:
调用代码:
class Program{static void Main(string[] args){string sql = "SELECT * FROM dbo.LS_StatementDetail WHERE ApplyCode=@ApplyCode AND ObjectCode=@ObjectCode";SqlParameter [] parameter= {new SqlParameter("@ApplyCode","C20180202100321292"),new SqlParameter("@ObjectCode","20180202163627977")};
int i=api.DBHelper.SQLHelper.ExecuteNonQuery(sql,parameter);DataTable dt = api.DBHelper.SQLHelper.ExecuteDataTable(sql, parameter);Console.WriteLine("parameter", parameter);Console.WriteLine("影响的行数i:{0}", i);Console.ReadLine();} }
数据库帮助类中的两个操作方法:
方法一:
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters) {String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnStr"].ToString();SqlConnection conn = null;conn = new SqlConnection(connectionString);conn.Open();SqlCommand cmd = new SqlCommand();cmd = conn.CreateCommand();cmd.CommandText = sql; //cmd.Parameters.Clear();foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);} int i= cmd.ExecuteNonQuery();cmd.Parameters.Clear();return i;}
方法二:
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters){String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnStr"].ToString();SqlConnection conn = null;using (conn = new SqlConnection(connectionString)){conn.Open(); SqlCommand cmd = conn.CreateCommand();cmd.CommandText = sql;//cmd.Parameters.Clear();foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}DataSet dataset = new DataSet();SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.Fill(dataset);DataTable dt = dataset.Tables[0];cmd.Parameters.Clear();return dt;}}
奇怪的问题就来了:我在方法的前面Clear(),就没有效果依然会报错,而我在方法的后面Clear()便成功清理了参数。希望查阅资料后能找出答案,路过的大神看到也请指教下,不过好在问题是解决了。
这篇关于cmd.SqlParameter.Add 另一个 SqlParameterCollection 中已包含 SqlParameter 问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!