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。