SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;Integrated Security=True;AttachDbFilename=c:usersnamedocumentsvisual studio 2013ProjectsDBSampleDBSampleDatabase1.mdf");
SqlCommand cmd = new SqlCommand("Select * From Account", con);
SqlDataReader rd= cmd.ExecuteReader(); ;
这是我连接到database1.mdf
的代码,但它不起作用。
我看到其他帖子,这应该已经工作
您没有打开连接,您需要在执行查询之前打开与数据库的连接。
这样做:
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;Integrated Security=True;AttachDbFilename=c:usersnamedocumentsvisual studio 2013ProjectsDBSampleDBSampleDatabase1.mdf");
SqlCommand cmd = new SqlCommand("Select * From Account", con);
con.Open();
SqlDataReader rd= cmd.ExecuteReader();
解释:
您阅读的其他示例可能使用SqlDataAdapter,它为您打开连接。但是,如果直接使用SqlCommand,则需要自己打开连接。
由于您没有提供确切的Exception
的任何细节,我将使用显而易见的内容:在您尝试执行SQL查询时,您的连接尚未打开。不仅如此,你的物品也永远不会被处理掉。
更好的实现方式是:
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0;Integrated Security=True;AttachDbFilename=c:usersnamedocumentsvisual studio 2013ProjectsDBSampleDBSampleDatabase1.mdf"))
{
using (SqlCommand cmd = new SqlCommand("Select * From Account", con))
{
// here the connection opens
con.Open();
using (SqlDataReader rd = cmd.ExecuteReader())
{
// do your data reading here
}
}
}
using
语句将确保正确处理con
、cmd
和rd
对象。