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


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语句将确保正确处理concmdrd对象。

相关内容

  • 没有找到相关文章

最新更新