c#DB相关错误
以下是连接字符串:c#DB相关错误,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,以下是连接字符串: <connectionStrings> <add name="DBConnection" connectionString="Data Source=Personal-PC;Initial Catalog=LocalDB;Persist Security Info=True;User ID=google;Password=google" providerName="System.Data.SqlClient" /> </connectio
<connectionStrings>
<add name="DBConnection" connectionString="Data Source=Personal-PC;Initial Catalog=LocalDB;Persist Security Info=True;User ID=google;Password=google" providerName="System.Data.SqlClient" />
</connectionStrings>
您应该使用
WebConfigurationManager
而不是ConfigurationManager
来读取web.config
文件
操作方法是,只需要在您的案例中替换类的名称。此序列将杀死您:
objsqlconn.Close();
objsqlconn.Dispose();
objsqlconn.Open();
一旦释放了连接对象,就不能使用它。实际上,您可以大大简化整个方法:
public void ExecuteSQL(string sqlstring, IEnumerable<SqlParameter> sqlparam)
{
using (SqlConnection cn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(sqlstring, objsqlconn))
{
cmd.Parameters.AddRange(sqlparam.ToArray());
cn.Open();
cmd.ExecuteNonQuery();
}
}
public void ExecuteSQL(字符串sqlstring,IEnumerable sqlparam)
{
使用(SqlConnection cn=newsqlconnection(connectionString))
使用(SqlCommand cmd=newsqlcommand(sqlstring,objsqlconn))
{
cmd.Parameters.AddRange(sqlparam.ToArray());
cn.Open();
cmd.ExecuteNonQuery();
}
}
只需查看消息“ConnectionString属性尚未初始化”。@user2721764:所有对象都将在页面生命周期结束时释放。这可能就是原因。显示指定连接字符串的方法以及使用连接的位置。上面的代码无法编译,因为connectionString
是一个字段。因为每次可以用if(objsqlconn.State!=ConnectionState.Open)
替换if(true)
时,您都在重建对象。现在,您省略了该字段connectionString
。另一方面,您应该使用throw
(或省略Catch
)而不是throw new Exception(例如Message)
来保留原始堆栈跟踪,包括行号。您确定不需要WebConfigurationManager
而不是ConfigurationManager
。很简单,我们都错过了它。您还没有失去编程技能;)
objsqlconn.Close();
objsqlconn.Dispose();
objsqlconn.Open();
public void ExecuteSQL(string sqlstring, IEnumerable<SqlParameter> sqlparam)
{
using (SqlConnection cn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(sqlstring, objsqlconn))
{
cmd.Parameters.AddRange(sqlparam.ToArray());
cn.Open();
cmd.ExecuteNonQuery();
}
}