我使用的是VS2012和SQL Server Express 2008。我已经简化了我的连接/查询,试图找出为什么我的DataSet没有被填满。连接成功完成,没有抛出异常,但适配器不填充DataSet。要从中提取数据的数据库在同一台PC上,使用localhost\SQLEXPRESS不会更改结果。感谢您的任何意见!
SqlConnection questionConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
questionConnection.Open();
String sql = "SELECT * FROM HRA.dbo.Questions";
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();
SqlCommand command = new SqlCommand(sql, questionConnection);
adapter.SelectCommand = command;
adapter.Fill(ds);
adapter.Dispose();
command.Dispose();
questionConnection.Close();连接字符串:
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=CODING-PC\SQLEXPRESS;Initial Catalog=HRA;User ID=sa; Password= TEST" />发布于 2012-10-30 20:09:06
试试这个:
SqlConnection questionConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
questionConnection.Open();
DataSet ds = new DataSet();
String sql = "SELECT * FROM HRA.dbo.Questions";
SqlDataAdapter adapter = new SqlDataAdapter(sql, questionConnection);
adapter.Fill(ds);
adapter.Dispose();
command.Dispose();
questionConnection.Close();发布于 2012-10-30 20:28:41
看起来答案已经找到了,不过,我还是发布了一个,倡导使用using块,并让.NET框架为您做这些繁重的工作。您的11行代码可以在3行代码中重写:
DataSet ds = new DataSet();
using (var adapter = new SqlDataAdapter("SELECT * FROM HRA.dbo.Questions", ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
adapter.Fill(ds);
}发布于 2012-10-30 20:10:18
"HRA.dbo.Questions“是一个实际的表吗?
您的连接字符串包含一个值为"HRA“的初始Catalog值,据我所知,SQL应该只包含dbo.Questions。
https://stackoverflow.com/questions/13138615
复制相似问题