Vít*_*ton 2 c# sql sql-server nhibernate
我的连接字符串、我的数据库和一切都运行良好,但就在我在我的页面上调用它一次时。
我有几种方法可以连接到我的数据库并向我返回一个值,这是我第一次需要使用其中的两个。我收到此错误conn.Open():
“ConnectionString 属性尚未初始化。” “描述:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。”
异常详细信息:System.InvalidOperationException:ConnectionString 属性尚未初始化。
当我打电话时,只有一个工作得很好。
我的这两种方法的来源是,我对每个人都使用几乎相同的代码,只是更改了表名:
public DataTable Category(){
sda = new SqlDataAdapter("select * from tbl_category", conn);
sda.Fill(dt);
return dt;
}
Run Code Online (Sandbox Code Playgroud)
和
public int CategoryLastId(){
using (conn){
conn.Open();
sqlCommand = new SqlCommand("SELECT MAX(Id) AS LastID FROM tbl_category", conn);
sqlCommand.ExecuteNonQuery();
Int32 newId = (Int32)sqlCommand.ExecuteScalar();
conn.Close();
return Convert.ToInt32(newId);
}
}
Run Code Online (Sandbox Code Playgroud)
感觉他们有冲突(另外,调用 .Get with NHibernate,但这也工作正常)
问题是该using语句在返回时正在关闭连接。
创建SqlConnection您的 using 语句内部,如下所示:
using (SqlConnection conn = new SqlConnection(connString)) { ... }
Run Code Online (Sandbox Code Playgroud)
从您的配置文件中获取连接字符串:
connString = ConfigurationManager.ConnectionStrings["yourConnString"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
配置文件:
<connectionStrings>
<add name="yourConnString" connectionString="..." providerName="..."/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)