问题描述
///<summary>///创建SqlDataAdapter对象///</summary>///<paramname="procName">存储过程的名称</param>///<paramname="prams">存储过程所需参数</param>///<returns>返回SqlDataAdapter对象</returns>privatestaticSqlDataAdapterCreateSqlDataAdapter(stringprocName,paramsSqlParameter[]prams){///创建数据库连接SqlConnectionsqlCon=CreateSqlConnection();///打开数据库连接if(sqlCon==null)returnnull;if(sqlCon.State==ConnectionState.Closed){sqlCon.Open();}///设置SqlDataAdapter的属性SqlDataAdapterda=newSqlDataAdapter(procName,sqlCon);da.SelectCommand.CommandType=CommandType.StoredProcedure;///添加存储过程参数if(prams!=null){foreach(SqlParameterparameterinprams){da.SelectCommand.Parameters.Add(parameter);}}///添加返回参数da.SelectCommand.Parameters.Add(newSqlParameter(returnValueString,SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));///返回SqlDataAdapter对象returnda;}
解决方案
解决方案二:
要呀,释放资源!
解决方案三:
要的.
解决方案四:
finally{if(connection!=null){connection.Close();connection.Dispose();}if(command!=null){command.Dispose();}}
解决方案五:
要一般在try{}catch{}finially{}结构中写在finailly中
解决方案六:
这是肯定要的。因为比较多使用SqlHelper之类的东西,SqlHelper里面,一般都是使用using来自动释放资源的吧。。。
解决方案七:
那我应该怎么调整呢???
解决方案八:
对的,要释放资源,,或者使用using数据库连接是要手动释放资源的。
解决方案九:
SqlConnectionsqlconn=newSqlConnection(SqlHelper._connectionString);sqlconn.Open();SqlCommandsqlcomm=newSqlCommand(sqlString,sqlconn);SqlDataReaderreader=sqlcomm.ExecuteReader();...reader.Close();sqlcomm.Dispose();sqlconn.Close();
解决方案十:
使用using(){}结构写这类代码,不需要显示执行Close()。
解决方案十一:
谁能帮我在原有代码的基础上,进行一下优化啊??
解决方案十二:
是这样?????///<summary>///创建SqlDataAdapter对象///</summary>///<paramname="procName">存储过程的名称</param>///<paramname="prams">存储过程所需参数</param>///<returns>返回SqlDataAdapter对象</returns>privatestaticSqlDataAdapterCreateSqlDataAdapter(stringprocName,paramsSqlParameter[]prams){///创建数据库连接SqlConnectionsqlCon=CreateSqlConnection();using(sqlCon){///打开数据库连接if(sqlCon==null)returnnull;if(sqlCon.State==ConnectionState.Closed){sqlCon.Open();}///设置SqlDataAdapter的属性SqlDataAdapterda=newSqlDataAdapter(procName,sqlCon);da.SelectCommand.CommandType=CommandType.StoredProcedure;///添加存储过程参数if(prams!=null){foreach(SqlParameterparameterinprams){da.SelectCommand.Parameters.Add(parameter);}}///添加返回参数da.SelectCommand.Parameters.Add(newSqlParameter(returnValueString,SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));///返回SqlDataAdapter对象returnda;}}
解决方案十三:
///<summary>///创建SqlDataAdapter对象///</summary>///<paramname="procName">存储过程的名称</param>///<paramname="prams">存储过程所需参数</param>///<returns>返回SqlDataAdapter对象</returns>privatestaticSqlDataAdapterCreateSqlDataAdapter(stringprocName,paramsSqlParameter[]prams){///创建数据库连接SqlConnectionsqlCon=CreateSqlConnection();try{///打开数据库连接if(sqlCon==null)returnnull;if(sqlCon.State==ConnectionState.Closed){sqlCon.Open();}///设置SqlDataAdapter的属性SqlDataAdapterda=newSqlDataAdapter(procName,sqlCon);da.SelectCommand.CommandType=CommandType.StoredProcedure;///添加存储过程参数if(prams!=null){foreach(SqlParameterparameterinprams){da.SelectCommand.Parameters.Add(parameter);}}///添加返回参数da.SelectCommand.Parameters.Add(newSqlParameter(returnValueString,SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));///返回SqlDataAdapter对象returnda;}catch{returnnull;}finally{if(sqlCon!=null){sqlCon.Close();}}}
解决方案十四:
using也可以建议用using
解决方案十五:
using(SqlConnectionsqlCon=CreateSqlConnection()){...yourcode}
解决方案:
有始有终么有打开就有关闭
解决方案:
要得,养成好习惯!
解决方案:
using(SqlConnectionconn=newSqlConnection(connectionString)){yourcode;}其实直接使用SqlHelper不好么。。。
解决方案:
这里的return(newSqlConnection(conStr));要关闭吗????///<summary>///创建连接.///</summary>privatestaticSqlConnectionCreateSqlConnection(){///获取连接字符串stringconStr=(string)Cache.GetData(connectionStringNameInWebConfig);if(string.IsNullOrEmpty(conStr)){try{///如果连接字符串为空,则从配置文件中获取连接字符串conStr=ConfigurationManager.ConnectionStrings[connectionStringNameInWebConfig].ConnectionString;}catch(Exceptionex){thrownewException(ex.Message,ex);}///把字符串添加到缓存中Cache.CachingData(connectionStringNameInWebConfig,conStr);}if(!string.IsNullOrEmpty(conStr)){///创建数据库连接return(newSqlConnection(conStr));}returnnull;}
解决方案:
使用using(){}写这类代码,就不需要执行Close()。
解决方案:
引用18楼david1030的回复:
这里的return(newSqlConnection(conStr));要关闭吗????C#code///<summary>///创建连接.///</summary>privatestaticSqlConnectionCreateSqlConnection(){///获取连接字符串stringconStr=(string)Cache.GetData(connectionStringNameInWebConfig);if(string.IsNullOrEmpty(conStr)){try{///如果连接字符串为空,则从配置文件中获取连接字符串conStr=ConfigurationManager.ConnectionStrings[connectionStringNameInWebConfig].ConnectionString;}catch(Exceptionex){thrownewException(ex.Message,ex);}///把字符串添加到缓存中Cache.CachingData(connectionStringNameInWebConfig,conStr);}if(!string.IsNullOrEmpty(conStr)){///创建数据库连接return(newSqlConnection(conStr));}returnnull;}
using不用释放
解决方案:
强烈建议,using
解决方案:
楼主的帖子都是无满意结贴,建议不要回复他,封杀此ID
解决方案:
最简单的方法:return前加句sqlcon.Close();
解决方案:
还好意思发帖问问题是么。。看看你的结贴。。建议封杀