executereaderによって読み取られた行をC#コーディングで新しいデータテーブルに追加したい
3440 次
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 に答える