【问题标题】:Operate with app_data .mdf database使用 app_data .mdf 数据库操作
【发布时间】:2015-08-14 06:07:12
【问题描述】:

我正在使用 Visual Studio 2013。创建了 Web 窗体项目。添加了一些东西和需要的数据库。 此外,使用添加项目添加数据库。 向数据库添加了一些东西。 使用来自 Web Config 的连接字符串。 建立连接时,我遇到了一些错误。

这是我的连接字符串>

<connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-mywebsite-20150813211505;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-mywebsite-20150813211505.mdf" />
  </connectionStrings>

C#代码>

SqlConnection con = new SqlConnection(@"Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-mywebsite-20150813211505;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-mywebsite-20150813211505.mdf");
            SqlCommand cmd = new SqlCommand("select * from Users;");
            con.Open();
            DataSet ds = new DataSet(cmd, con);
            SqlDataAdapter da = new SqlDataAdapter();
            da.Fill(ds);
            con.Close();

这里是错误

错误 1 ​​

最好的重载方法匹配 'System.Data.DataSet.DataSet(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' 有一些无效 参数 c:\users***\documents\visual studio 2013\Project\Default.aspx.cs 30 26 我的网站

错误 2

参数 1:无法从 'System.Data.SqlClient.SqlCommand' 转换为 'System.Runtime.Serialization.SerializationInfo' c:\users***\documents\visual studio 2013\Projects\Default.aspx.cs 30 38 管理网站

错误 3

参数 2:无法从 'System.Data.SqlClient.SqlConnection' 转换 至 'System.Runtime.Serialization.StreamingContext' c:\users***\documents\visual 工作室 2013\Projects\Default.aspx.cs 30 43 我的网站

当点击错误时,它的焦点是DataSet。

帮助??连接到我的数据库的更好主意?

提前谢谢你!

【问题讨论】:

    标签: c# asp.net webforms


    【解决方案1】:

    你在初始化你的DataSet和你的SqlDataAdapter时犯了一些错误,正确的方法是

    using(SqlConnection con = new SqlConnection(....))
    {
        SqlCommand cmd = new SqlCommand("select * from Users;");
        cmd.Connection = con;
        con.Open();
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
    }
    

    SqlDataAdapter 实例需要SqlCommand 作为其构造函数之一的参数,因为您可以轻松发现on MSDN page。然后连接绑定SqlCommand.Connection 属性,您应该将SqlConnection 的创建包含在using statement 中,以确保它已关闭并在使用块的末尾处理

    您还可以从上面的代码中删除两行将连接直接传递给 SqlCommand 的构造函数(再次MSDN pages 是一个信息宝库)并删除连接的打开,因为如果适配器发现连接关闭,它会自动打开和关闭它

    关于另一个主题,您已将连接字符串正确存储在应用程序的配置文件中。这使您可以轻松更改它(如果需要)但是您使用了硬编码的连接字符串。应该改成这样的

     string connString2 = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
    

    【讨论】:

    • System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理其他信息:无法附加文件“c:\users” ***\documents\visual studio 2013\Projects\App_Data\aspnet-mywebsite-20150813211505.mdf' as database 'aspnet-mywebsite-20150813211505'。 连接字符串有什么问题?
    • 感谢您的快速答复。我重写代码。 string connString2 = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;‌​
      using (SqlConnection con = new SqlConnection(connString2))
      { &lt;br/&gt; SqlCommand cmd = new SqlCommand("shortsql");
      cmd.Connection = con;
      con.Open();
      DataSet ds = new DataSet();
      SqlDataAdapter da = new SqlDataAdapter(cmd);
      @ 987654337@ con.Close(); &lt;br/&gt; } 报错(请看下一条评论)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多