C# 在ASP.NET webforms中从LocalDB检索数据

C# 在ASP.NET webforms中从LocalDB检索数据,c#,asp.net,localdb,C#,Asp.net,Localdb,我正在使用一个简单的webforms应用程序从LocalDb\v11.0本地检索要在GridView控件中绑定的数据。我在App_Data文件夹中创建了MyDb.sdf和一个名为info的表。我得到以下错误 运行时发生与网络相关或特定于实例的错误 正在建立与SQL Server的连接。找不到服务器,或者 无法访问。验证实例名称是否正确,以及 SQL Server配置为允许远程连接。(提供程序:SQL) 网络接口,错误:26-定位服务器/实例时出错 (指定) Web.config: <con

我正在使用一个简单的webforms应用程序从
LocalDb\v11.0
本地检索要在
GridView
控件中绑定的数据。我在
App_Data
文件夹中创建了
MyDb.sdf
和一个名为info的表。我得到以下错误

运行时发生与网络相关或特定于实例的错误 正在建立与SQL Server的连接。找不到服务器,或者 无法访问。验证实例名称是否正确,以及 SQL Server配置为允许远程连接。(提供程序:SQL) 网络接口,错误:26-定位服务器/实例时出错 (指定)

Web.config

<connectionStrings>    
    <add name="dbcs"
         connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\MyDb.sdf;Integrated Security=True"
         providerName="System.Data.SqlClient" />
</connectionStrings>

您的连接字符串和代码(使用
SqlConnection
)适用于SQL Server(Express、Web、Standard、Enterprise)的完整版本,而
.sdf
数据库文件适用于SQL ServerCompact Edition

这两种技术不兼容。无法将
.sdf
数据库文件附加到
(LocalDB)\v11.0
LocalDB实例-它必须是
.mdf
文件


使用realSQL Server(在SQL Server实例中创建数据库)和您当前的代码-或者,您需要在代码中切换到使用
SqlCeConnection
SqlCeCommand
,请确保
.sdf
文件位于
app_data
中,然后只有您可以访问它,否则您必须使用物理路径。如果您的文件位于
app\u data
中,则不需要斜杠“\”,只需将
\DataDirectory\124; MyDb.sdf
写入aap\u数据文件夹即可。我在前面提到过。正如我在前面的评论中提到的,不要添加斜杠“\”,现在这个错误被抛出,关键字不受支持:“attachdbfilename”。只需使用这个`connectionString=“Data Source=| DataDirectory | MyDb.sdf;”`
<form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>

    </div>
    </form>
protected void Page_Load(object sender, EventArgs e)
{
    string con = WebConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;

    using (SqlConnection scon = new SqlConnection(con))
    {
        SqlCommand cmd = new SqlCommand("select * from info", scon);
        scon.Open();

        GridView1.DataSource = cmd.ExecuteReader();
        GridView1.DataBind();

        scon.Close();
    }
}