饼子天空  
个人程序Blogs
ExecuteStoreCommand  SqlParameterCollection 中已包含 SqlParameter 

今天很奇怪调用EF的ExecuteStoreCommand 出现了个这样的错误,怎么也调试不过,痛定思痛

原来 command被连着调用了而没有销毁掉

  public static DataTable GetDataTable(
            string connDBStr, string sql, params SqlParameter[] cmdParms)
        {
            SqlCommand cmd = new SqlCommand();
            using (SqlConnection conn = new SqlConnection(connDBStr))
            {
                PrepareSqlCommand(cmd, conn, null, sql, cmdParms);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable    (SetSqlAsDataTableName(sql));
                da.Fill(dt);
                cmd.Parameters.Clear();//多了这一句,就解决了问题
                return dt;
            }

        } 


还要说说EF调用 ExecuteStoreCommand 的用法 

string orderCode =“test1”;

 

string dishMenuCode=“test2”

 

          var parameter = new SqlParameter[]{

                 

  new SqlParameter("@p_order",orderCode),
                    new SqlParameter("@p_dish",dishMenuCode),
                };//多个参数的列子
                

ef.ExecuteStoreCommand("update dbo.order_info_ed set dpState='1' where orderCode=@p_order and dishMenuCode=@p_dish", parameter);

                var paramenter2 = new SqlParameter { ParameterName = "@p_user", Value = "gxw" };//一个参数的例子
                ef.ExecuteStoreCommand("select * From UserTable where username=@p_user", paramenter2);

 

 

 

 

 

posted on 2012-01-14 11:21  饼子天空  阅读(3106)  评论(0编辑  收藏  举报