这是我的代码。
public DataSet ConnectandReadList()
{
DataSet ds = new DataSet();
string connection_string="Data Source=hermes;database=qcvalues; Integrated Security=SSPI;";
using (var myConnection = new SqlConnection(connection_string))
{
myConnection.Open();
var command = new SqlCommand(InitializeQuery(), myConnection);
var adapter = new SqlDataAdapter(command);
adapter.Fill(ds);
}
return ds;
}
然后我以这种方式设置数据源:
dataGridView1.DataSource = ds.Tables[0];
问题是我应该返回数据集还是数据表?如果我要返回数据表,我的代码将如何改变?
答案 0 :(得分:2)
我只是在你的情况下返回一个DataTable。而且代码越正确
using (var command = new SqlCommand(InitializeQuery(), myConnection))
using (var adapter = new SqlDataAdapter(command))
adapter.Fill(ds);
答案 1 :(得分:1)
将单词DataSet
更改为DataTable
并重新编译。使用此方法的结果时会出现错误,但您只需将dataGridView1.DataSource = ds.Tables[0];
更改为dataGridView1.DataSource = ds;
答案 2 :(得分:1)
只需将所有DataSet
替换为DataTable
(为了便于阅读,所有ds
改为resultTable
) - 或者我是否遗漏了任何内容?
答案 3 :(得分:0)
http://imar.spaanjaars.com/406/filling-a-datatable-or-dataset-the-quick-way
private DataTable GetDataTable()
{
string sql = "SELECT Id, Description FROM MyTable";
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
using (SqlCommand myCommand = new SqlCommand(sql, myConnection))
{
myConnection.Open();
using (SqlDataReader myReader = myCommand.ExecuteReader())
{
DataTable myTable = new DataTable();
myTable.Load(myReader);
myConnection.Close();
return myTable;
}
}
}
}