我想使用 C# 编码将 executereader 读取的行添加到新数据表中
问问题
3440 次
2 回答
1
制作一个数据表对象,其列与数据读取器的列相同。请看下面的代码。
例如:
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 添加值。
于 2010-11-29T09:56:32.117 回答
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 回答