我的连接字符串,数据库和其他所有东西都工作正常,但是当我在页面上一次调用它时。
我有几种方法可以连接到数据库并向我返回一个值,这是我第一次需要使用两种方法。我在中得到此错误conn.Open():
conn.Open()
“ ConnectionString属性尚未初始化。” “描述:在执行当前Web请求的过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的详细信息。”
异常详细信息:System.InvalidOperationException:ConnectionString属性尚未初始化。
当我打电话时,只有一个工作得很好。
我从这两种方法中得到的是,我为每个人使用几乎相同的代码,只是更改了表名:
public DataTable Category(){ sda = new SqlDataAdapter("select * from tbl_category", conn); sda.Fill(dt); return dt; }
和
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); } }
感觉好像他们有冲突(也可以通过NHibernate调用.Get,但这也很好用)
问题在于该using语句返回时将关闭连接。
using
创建SqlConnection您的using语句的内部,如下所示:
SqlConnection
using (SqlConnection conn = new SqlConnection(connString)) { ... }
为了从您的配置文件中获取连接字符串:
connString = ConfigurationManager.ConnectionStrings["yourConnString"].ConnectionString;
配置文件:
<connectionStrings> <add name="yourConnString" connectionString="..." providerName="..."/> </connectionStrings>