Saya ingin mengubah DataRow
array menjadi DataTable
... Apa cara termudah untuk melakukan ini?
98
Mengapa tidak mengulang melalui array DataRow Anda dan menambahkan (menggunakan DataRow.ImportRow, jika perlu, untuk mendapatkan salinan DataRow), seperti:
foreach (DataRow row in rowArray) {
dataTable.ImportRow(row);
}
Pastikan dataTable Anda memiliki skema yang sama dengan DataRows di larik DataRow Anda.
DataTable dataTable = new DataTable(); dataTable.ImportRow(dataRow); MyControl.DataSource = dataTable;
rowArray.CopyToDataTable();
karena ini membuat skema tabel dan tidak menggantinya dengan objek tabel baru!Untuk .Net Framework 3.5+
Tetapi jika tidak ada baris dalam larik, itu dapat menyebabkan kesalahan seperti Sumber tidak berisi DataRows . Oleh karena itu, jika Anda memutuskan untuk menggunakan metode ini
CopyToDataTable()
, Anda harus memeriksa array untuk mengetahui bahwa ia memiliki datarows atau tidak.Referensi tersedia di MSDN: Metode DataTableExtensions.CopyToDataTable (IEnumerable)
sumber
copyToDataTable()
? Saya tidak menemukannya di .net 2.0copyToDataTable()
metode membuat salinan sempurna dari kolom dari baris yang dipilih, sedangkandatatable.ImportRow(row)
metode tidaksumber
Input array is longer than the number of columns in this table.
". Dengan-Clone Version Error: "Unable to cast object of type 'System.Data.DataRow' to type 'System.IConvertible'.Couldn't store <System.Data.DataRow> in StoreOrder Column. Expected type is Int64.
" Catatan:StoreOrder
adalah kolom pertama dalam skema tabel. Sepertinya itu mencoba menjejalkan seluruh datarow ke dalam kolom pertama ituCara lain adalah dengan menggunakan DataView
sumber
Cara sederhananya adalah:
sumber
sumber
sumber
sumber
.Net 3.5+ menambahkan DataTableExtensions, gunakan Metode DataTableExtensions.CopyToDataTable
Untuk array datarow cukup gunakan .CopyToDataTable () dan itu akan mengembalikan data.
Untuk penggunaan datarow tunggal
sumber
Inilah solusinya. Ini harus bekerja dengan baik.
sumber
Jika ada yang membutuhkannya di VB.NET:
sumber
Anda bisa menggunakan System.Linq seperti ini:
sumber
Anda perlu mengkloning struktur tabel Data terlebih dahulu lalu mengimpor baris menggunakan for loop
sumber
sumber