LocalDB(.mdf)的连接字符串在WPF上不起作用

本文关键字:WPF 不起作用 字符串 连接 mdf LocalDB | 更新日期: 2023-09-27 17:57:32

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)'v11.0;Integrated Security=True;AttachDbFilename=c:'users'name'documents'visual studio 2013'Projects'DBSample'DBSample'Database1.mdf");
SqlCommand cmd = new SqlCommand("Select * From Account", con);
SqlDataReader rd= cmd.ExecuteReader(); ;

这是我连接到database1.mdf的代码,但它不起作用。

我看到其他帖子,这应该已经工作

LocalDB(.mdf)的连接字符串在WPF上不起作用

您没有打开连接,您需要在执行查询之前打开与数据库的连接。

这样做:

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)'v11.0;Integrated Security=True;AttachDbFilename=c:'users'name'documents'visual studio 2013'Projects'DBSample'DBSample'Database1.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:'users'name'documents'visual studio 2013'Projects'DBSample'DBSample'Database1.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语句将确保正确处理concmdrd对象。