C # Если мне нужна только одна таблица, я должен использовать DataSet или DataTable? - PullRequest
1 голос
/ 05 ноября 2010

вот мой код.

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];

Вопрос в том, должен ли я возвращать набор данных или данные?как изменился бы мой код, если бы я возвращал данные?

Ответы [ 4 ]

2 голосов
/ 05 ноября 2010

Я просто возвращаю DataTable, когда в вашей ситуации.И тем более правильный код будет

using (var command = new SqlCommand(InitializeQuery(), myConnection))
using (var adapter = new SqlDataAdapter(command))
    adapter.Fill(ds);
1 голос
/ 05 ноября 2010

Просто замените все ваши DataSet на DataTable (а для удобства чтения все ds на resultTable) - или я что-то пропустил?

1 голос
/ 05 ноября 2010

Измените слово DataSet на DataTable и перекомпилируйте.Вы получите сообщение об ошибке при использовании результата этого метода, но вам просто нужно изменить dataGridView1.DataSource = ds.Tables[0]; на dataGridView1.DataSource = ds;

0 голосов
/ 05 ноября 2010

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;
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...