SqlDataAdapter不会填充DataSet

我正在使用VS2012和SQL Server Express 2008.我已经简化了我的连接/查询,试图找出为什么我的DataSet没有被填充。 连接成功完成,并且不会抛出任何exception,但适配器不会填充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(); 

连接字符串:

  

试试这个:

 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(); 

似乎已经找到了答案,但是,无论如何,我发布了一个主张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); } 

“HRA.dbo.Questions”是一张真正的桌子吗?

您的connectionstring包含一个值为“HRA”的初始目录,据我所知,SQL应该只包含dbo.Questions。