0

executereaderによって読み取られた行をC#コーディングで新しいデータテーブルに追加したい

4

2 に答える 2

1

あなたの質問には未知数が多すぎます。たとえば、データテーブルは型指定されていますか、それとも型指定されていませんか?列の種類は何ですか?などなど。

とにかく、ここに一般的な例があります。ここに示した元のサンプルのコードを採用しました。

private static void 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();
}

}

于 2010-11-29T09:53:30.133 に答える
1

datareaderの列と同じ列でdataTableオブジェクトを作成します。plsは以下のコードを見てください。

例えば:

DataTable _dt=new DataTable();//public 

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

したがって、データテーブルには2つの列[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に値を追加できます。

于 2010-11-29T09:56:32.117 に答える