C# LocalDB(.mdf)的连接字符串不在WPF上工作

C# LocalDB(.mdf)的连接字符串不在WPF上工作,c#,.net,ado.net,data-access,C#,.net,Ado.net,Data Access,这是我用来连接数据库1.mdf的代码,但它不起作用 我在另一篇文章中看到,这应该已经起作用了您没有打开连接,您需要在执行查询之前打开与数据库的连接 这样做: SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;Integrated Security=True;AttachDbFilename=c:\users\name\documents\visual studio 2013\Projects\DBSample\

这是我用来连接数据库1.mdf的代码,但它不起作用


我在另一篇文章中看到,这应该已经起作用了

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

这样做:

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(); ;
说明:


您阅读的其他示例可能使用一个SqlDataAdapter,它为您打开连接。但是,如果您直接使用SqlCommand,则需要自己打开连接。

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

这样做:

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(); ;
说明:


您阅读的其他示例可能使用一个SqlDataAdapter,它为您打开连接。但是,如果您直接使用SqlCommand,您需要自己打开连接。

由于您没有提供任何有关您遇到的确切
异常的详细信息,我将使用一个显而易见的事实:在您尝试执行SQL查询时,您的连接尚未打开。不仅如此,你的物品也永远不会被处理掉

更好的实施方式是:

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();

使用
语句将确保正确处理您的
con
cmd
rd
对象。

因为您没有提供任何有关您遇到的确切
异常
的详细信息,我将采用显而易见的方式:在您尝试执行SQL查询时,您的连接尚未打开。不仅如此,你的物品也永远不会被处理掉

更好的实施方式是:

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();

使用
语句将确保正确处理
con
cmd
rd
对象。

是否有异常?“但它不起作用”没有用。我们需要更多的细节来回答您的问题。你收到异常或错误消息了吗?收到异常了吗?“但它不起作用”没有用。我们需要更多的细节来回答您的问题。您收到任何异常或错误消息吗?说明:您阅读的其他示例可能使用了一个为您打开连接的
SqlDataAdapter
。但是,如果您直接使用
SqlCommand
,您需要自己打开连接。感谢您添加解释。@ThorstenDittmarThanks:)它可以工作,我不知道SqlDataAdapter编辑:是否可以使AttachDbFilename相对?如果将.mdf放在应用程序的app_数据文件夹中,您可以这样传递相对路径:AttachDbFilename=| DataDirectory | \persondb.mdfI不明白,它现在可以工作了。这是目录结果“c:\users\name\documents\visual studio 2013\Projects\DBSample\DBSample\bin\Debug\Database1.mdf”更新:我删除了app_数据文件夹,它工作了,错误:存在同名数据库,或无法打开指定的文件,或者它位于UNC ShareExplanation上:您阅读的其他示例可能会使用
SqlDataAdapter
为您打开连接。但是,如果您直接使用
SqlCommand
,您需要自己打开连接。感谢您添加解释。@ThorstenDittmarThanks:)它可以工作,我不知道SqlDataAdapter编辑:是否可以使AttachDbFilename相对?如果将.mdf放在应用程序的app_数据文件夹中,您可以这样传递相对路径:AttachDbFilename=| DataDirectory | \persondb.mdfI不明白,它现在可以工作了。这是目录结果“c:\users\name\documents\visual studio 2013\Projects\DBSample\DBSample\bin\Debug\Database1.mdf”更新:我删除了app_数据文件夹,它工作了,错误:存在同名数据库,或无法打开指定的文件,或者它位于UNC上,谢谢:)您的实现比常见的practice@FranzJustinA.Buenaventura实际上,通常的做法应该是,当不再需要实现
IDispose
接口的对象时,总是处理它们,但是非常欢迎您。谢谢:)您的实现比普通的practice@FranzJustinA.Buenaventura实际上,通常的做法应该是,当不再需要实现
IDispose
接口的对象时,总是将它们处理掉,但欢迎使用。