我正在使用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。
帮忙?一些更好的想法连接到我的数据库?
提前谢谢!
答案 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;