Как добавить строки в datatable в то время как executereader читает строки из таблицы? - PullRequest
0 голосов
/ 29 ноября 2010

Я хочу добавить строки, которые читаются executereader, в новую таблицу данных с кодированием C #

Ответы [ 2 ]

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

Создайте объект dataTable с такими же столбцами, как у устройства чтения данных.Просьба взглянуть на код ниже.

Например:

DataTable _dt=new DataTable();//public 

void AddColumns()
{
 _dt.Columns.Add(new DataColumn("ID", typeof(int)));
 _dt.Columns.Add(new DataColumn("mark", typeof(int)));
}

Итак, в вашей таблице данных есть два столбца [ID и метка].

извлечение данных

System.Data.SqlClient.SqlDataReader rd=cmd.Execute
Reader();

Напишите функцию для добавления новой строки

public void NewRow(DataReader rd)
{
   while(rd.Read())
    {
   DataRow dr=_dt.NewRow();
   dr["ID"]=Convert.toInt32(rd["ID"]);
   dr["Mark"]=Convert.toInt32(rd["Mark"]);
   _dt.Rows.Add(dr)
      }
}

Таким образом, вы сможете добавлять значения в dataTable.

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

В вашем вопросе слишком много неизвестных.Форег, таблица данных напечатана или нетипизирована?Какие типы столбцов?И так далее.

Но в любом случае, вот общий пример.Я адаптировал код из исходного примера, приведенного здесь .

закрытая статическая пустота ReadOrderData (string connectionString) {string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";

using (SqlConnection connection =
           new SqlConnection(connectionString))
{
    SqlCommand command =
        new SqlCommand(queryString, connection);
    connection.Open();

    SqlDataReader reader = command.ExecuteReader();

    // Call Read before accessing data.
    while (reader.Read())
    {
       CustomersRow newCustomersRow = Customers.NewCustomersRow();

       newCustomersRow.CustomerID = reader[0].ToString();
       newCustomersRow.CompanyName = reader[1].ToString();
       dt.Rows.Add(newCustomersRow);
    }

    // Call Close when done reading.
    reader.Close();
}

}

...