关于数据库连接的关闭

形式一: 因为SqlHelper.FillDataset中已经关闭了连接 所以finally可以去掉
 public DSCO GetCheckerTimes( string dpt_sale_id,string  suo_id ,string group_id ,string emp_id ,int  times)
        {
            DSCO ds = new DSCO();
            try
            {
                string[] tableNames = new string[] { ds.RptData.TableName };
                SqlParameter[] parms ={
                                        new SqlParameter("@dpt_sale_id", SqlDbType.VarChar,8),
                                        new SqlParameter("@suo_id", SqlDbType.VarChar, 15),
                                        new SqlParameter("@group_id", SqlDbType.VarChar, 15),
                                        new SqlParameter("@emp_id", SqlDbType.VarChar, 15),
                                        new SqlParameter("@times", SqlDbType.Int, 4),
                                      };
                parms[0].Value = dpt_sale_id;
                parms[1].Value = suo_id;
                parms[2].Value = group_id;
                parms[3].Value = emp_id;
                parms[4].Value = times;
                SqlHelper.FillDataset(sqlConn, "SP_MI_GetCheckerTimes", ds, tableNames, parms);
            }
            catch (Exception ex)
            {
                Error.Log("SP_MI_GetCheckerTimes" + ex.Message.ToString());
            }
            finally
            {
                Close();
            }
            return ds;
        }
形式二:   sqlGetCustID.ExecuteNonQuery() 要使用finally
public int MI_SY_ZD_Users_TargetIfExist(DateTime godate, string checker,string type)
        {
            try
            {
                int count;
                SqlCommand sqlGetCustID = new SqlCommand();
                sqlGetCustID.CommandText = "[SP_MI_SY_ZD_Users_TargetIfExist]";
                sqlGetCustID.CommandType = CommandType.StoredProcedure;
                sqlGetCustID.Connection = sqlConn;
                sqlGetCustID.Parameters.Add(new SqlParameter("@godate", SqlDbType.DateTime));
                sqlGetCustID.Parameters.Add(new SqlParameter("@checker", SqlDbType.VarChar, 15));
                sqlGetCustID.Parameters.Add(new SqlParameter("@type", SqlDbType.VarChar, 1));
                sqlGetCustID.Parameters.Add(new SqlParameter("@count", SqlDbType.Int, 4, ParameterDirection.Output, false, 0, 0, "", DataRowVersion.Current, null));

                sqlGetCustID.Parameters["@godate"].Value = godate;
                sqlGetCustID.Parameters["@checker"].Value = checker.Trim();
                sqlGetCustID.Parameters["@type"].Value = type.Trim();
                sqlConn.Open();
                sqlGetCustID.ExecuteNonQuery();
                count = (int)sqlGetCustID.Parameters["@count"].Value;
                return count;
            }
            catch (Exception ex)
            {
                Error.Log("[SP_MI_SY_ZD_Users_TargetIfExist]" + ex.Message.ToString());
                return 0;
            }
            finally
            {
                Close();
            }
        }

形式三:
 public DataTable GetCUST_GetBYCUSTID(string cust_id)
        {
            try
            {
                SqlDataReader dr = null;
                Database data = new Database();
                DataTable dt = new DataTable();
                SqlParameter[] parms ={         
                data.MakeInParam("@CUST_ID",SqlDbType.VarChar,18,cust_id ),
                          };
                data.RunProc("[SP_MI_CUST_GetById]", parms, out dr);//dr的时候已经关闭了连接
                dt = Tools.ConvertDataReaderToDataTable(dr);//dr转化dt的时候已经关闭了dr 所以不用     finally
                return dt;
            }
            catch (Exception ex)
            {
                Error.Log(ex.Message + ":[SP_MI_CUST_GetById]");
                throw new Exception(ex.Message);

            }
            finally
            {
                Close();
            }
        }

形式四:使用后要关闭 dataReader 在关闭dataReader的同时也关闭了 数据库连接
 public SqlDataReader GetDpt_sale()
        {
            SqlDataReader dataReader = null;
            try
            {
                Open();

                SqlCommand cmd = new SqlCommand("SP_MI_WS_DPT_SALE_GET", sqlConn);
                cmd.CommandType = CommandType.StoredProcedure;

                dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                return dataReader;
            }
            catch (Exception ex)
            {
                Error.Log("[SP_MI_WS_DPT_SALE_GET]" + ex.Message.ToString());
                return dataReader;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值