Tuc*_*ker 2 c# sql sql-server ado.net
我正在使用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();
Run Code Online (Sandbox Code Playgroud)
连接字符串:
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=CODING-PC\SQLEXPRESS;Initial Catalog=HRA;User ID=sa; Password= TEST" />
Run Code Online (Sandbox Code Playgroud)
试试这个:
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();
Run Code Online (Sandbox Code Playgroud)
似乎已经找到了答案,但是,无论如何,我还是发布了一个来提倡使用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);
}
Run Code Online (Sandbox Code Playgroud)