形式一: 因为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;
}
}