首页 > 编程知识 正文

cmd .SqlParameter。增加另一个参数集合中已包含参数问题

时间:2023-05-06 05:15:26 阅读:245144 作者:4640

直接说问题:调用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()便成功清理了参数。希望查阅资料后能找出答案,路过的大神看到也请指教下,不过好在问题是解决了。







版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。