আমি একটি DataRow
অ্যারে রূপান্তর করতে চাই DataTable
... এটি করার সহজতম উপায় কী?
আমি একটি DataRow
অ্যারে রূপান্তর করতে চাই DataTable
... এটি করার সহজতম উপায় কী?
উত্তর:
আপনার ডেটাআর অ্যারের মাধ্যমে কেন পুনরুক্তি হবে না এবং যুক্ত করুন (DataRow.ImportRow ব্যবহার করে, প্রয়োজন হলে, DataRow এর একটি অনুলিপি পেতে), এর মতো কিছু:
foreach (DataRow row in rowArray) {
dataTable.ImportRow(row);
}
আপনার ডেটাট্যাবেল আপনার ডেটাআর অ্যারেতে ডেটা রো হিসাবে একই স্কিমা রয়েছে তা নিশ্চিত করুন।
rowArray.CopyToDataTable();
কারণ এটি টেবিল স্কিমা রাখে এবং এটি নতুন টেবিল বস্তুর সাথে প্রতিস্থাপন করছে না!
নেট ফ্রেমওয়ার্ক 3.5+ এর জন্য
DataTable dt = new DataTable();
DataRow[] dr = dt.Select("Your string");
DataTable dt1 = dr.CopyToDataTable();
কিন্তু যদি আছে অ্যারের মধ্যে কোন সারি এটি করতে পারে ত্রুটি যেমন সৃষ্টি উৎস কোন DataRows রয়েছে । অতএব, আপনি যদি এই পদ্ধতিটি ব্যবহার করার সিদ্ধান্ত নেন CopyToDataTable()
, আপনার এটির দটারো রয়েছে কি না তা জানতে আপনার অ্যারেটি পরীক্ষা করা উচিত।
if (dr.Length > 0)
DataTable dt1 = dr.CopyToDataTable();
এমএসডিএন-তে উপলব্ধ রেফারেন্স: ডেটাবেল এক্সটেনশনস op কপি টোডেটা টেবিল পদ্ধতি (আইনিউনারেবল)
copyToDataTable()
? আমি এটি নেট। 2.0 তে খুঁজে
copyToDataTable()
পদ্ধতিটি নির্বাচিত সারিগুলির কলামগুলির একটি নিখুঁত অনুলিপি তৈরি করে, যদিও datatable.ImportRow(row)
পদ্ধতিটি না করে
DataTable dt = new DataTable();
DataRow[] dr = (DataTable)dsData.Tables[0].Select("Some Criteria");
dt.Rows.Add(dr);
Input array is longer than the number of columns in this table.
"। ক্লোন সংস্করণ ত্রুটি সহ: " 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.
" দ্রষ্টব্য: StoreOrder
সারণি স্কিমাতে প্রথম কলাম। দেখে মনে হচ্ছে এটি পুরো কাতালিকে প্রথম কলামটিতে জ্যাম করার চেষ্টা করছে
আরেকটি উপায় হ'ল ডেটাভিউ ব্যবহার করা
// Create a DataTable
DataTable table = new DataTable()
...
// Filter and Sort expressions
string expression = "[Birth Year] >= 1983";
string sortOrder = "[Birth Year] ASC";
// Create a DataView using the table as its source and the filter and sort expressions
DataView dv = new DataView(table, expression, sortOrder, DataViewRowState.CurrentRows);
// Convert the DataView to a DataTable
DataTable new_table = dv.ToTable("NewTableName");
DataTable dt = new DataTable();
foreach (DataRow dr in drResults)
{
dt.ImportRow(dr);
}
DataTable Assetdaterow =
(
from s in dtResourceTable.AsEnumerable()
where s.Field<DateTime>("Date") == Convert.ToDateTime(AssetDate)
select s
).CopyToDataTable();
.Net 3.5+ ডেটা টেবিল এক্সটেনশনগুলি যুক্ত করেছে, ডেটাটেবল এক্সটেনশনগুলি ব্যবহার করুন op কপি টোডেটা টেবিল পদ্ধতি
ড্যাটারো অ্যারের জন্য কেবল ব্যবহার করুন। কপিটোডেটা টেবিল () এবং এটি ডেটেবল যোগ্য হবে।
একক দাতার ব্যবহারের জন্য
new DataRow[] { myDataRow }.CopyToDataTable()
সমাধান এখানে। এটা ঠিক কাজ করা উচিত।
DataTable dt = new DataTable();
dt = dsData.Tables[0].Clone();
DataRows[] drResults = dsData.Tables[0].Select("ColName = 'criteria');
foreach(DataRow dr in drResults)
{
object[] row = dr.ItemArray;
dt.Rows.Add(row);
}
ভিবি.এনইটি-তে যে কারওর প্রয়োজন আছে তা অন্তর্ভুক্ত করুন:
Dim dataRow as DataRow
Dim yourNewDataTable as new datatable
For Each dataRow In yourArray
yourNewDataTable.ImportRow(dataRow)
Next
DataTable dataTable = new DataTable();
dataTable = OldDataTable.Tables[0].Clone();
foreach(DataRow dr in RowData.Tables[0].Rows)
{
DataRow AddNewRow = dataTable.AddNewRow();
AddNewRow.ItemArray = dr.ItemArray;
dataTable.Rows.Add(AddNewRow);
}
DataTable dataTable = new DataTable(); dataTable.ImportRow(dataRow); MyControl.DataSource = dataTable;