使用app_data .mdf数据库

时间:2015-08-13 21:49:00

标签: c# asp.net webforms

我正在使用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#代码&gt;

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 mywebsite

错误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   studio 2013 \ Projects \ Default.aspx.cs 30 43 mywebsite

单击错误时,它会关注DataSet。

帮忙?一些更好的想法连接到我的数据库?

提前谢谢!

1 个答案:

答案 0 :(得分: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中,以确保它已关闭并放置在使用块的末尾< / p>

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

关于其他主题,您已将连接字符串正确存储在应用程序的配置文件中。这允许您轻松更改它(如果需要)但您使用了硬编码连接字符串。这应该改为像这样

 string connString2 = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
相关问题