উত্তর:
foreach (DataRow dr in dataTable1.Rows) {
if (/* some condition */)
dataTable2.Rows.Add(dr.ItemArray);
}
উপরের উদাহরণটি ধরে নিয়েছে dataTable1
এবং dataTable2
কলামগুলির একই সংখ্যা, টাইপ এবং ক্রম রয়েছে।
ItemArray
মত প্রকাশের শেষে অংশটি ছেড়ে দিলে তা ঘটবে । নিশ্চিত করুন যে আপনি সারিটির মানগুলি যুক্ত করছেন, সারিটি নিজেই নয়।
DataTable.Clone
: পদ্ধতি msdn.microsoft.com/en-us/library/...
সারণী থেকে অন্যটিতে নির্দিষ্ট সারিগুলি অনুলিপি করুন
// here dttablenew is a new Table and dttableOld is table Which having the data
dttableNew = dttableOld.Clone();
foreach (DataRow drtableOld in dttableOld.Rows)
{
if (/*put some Condition */)
{
dtTableNew.ImportRow(drtableOld);
}
}
এটা চেষ্টা কর
String matchString="ID0001"//assuming we have to find rows having key=ID0001
DataTable dtTarget = new DataTable();
dtTarget = dtSource.Clone();
DataRow[] rowsToCopy;
rowsToCopy = dtSource.Select("key='" + matchString + "'");
foreach (DataRow temp in rowsToCopy)
{
dtTarget.ImportRow(temp);
}
এটি পরীক্ষা করে দেখুন, আপনি এটি পছন্দ করতে পারেন (আগে, দয়া করে টেবিল 1 টেবিল 2 তে ক্লোন করুন):
table1.AsEnumerable().Take(recodCount).CopyToDataTable(table2,LoadOption.OverwriteChanges);
বা:
table1.AsEnumerable().Where ( yourcondition ) .CopyToDataTable(table2,LoadOption.OverwriteChanges);
সমর্থিত: 4, 3.5 এসপি 1, আপনি এখন অবজেক্টটিতে কেবল কোনও পদ্ধতিতে কল করতে পারেন।
DataTable dataTable2 = dataTable1.Copy()
অন্যান্য পোস্টের ফলস্বরূপ, আমি এটি পেতে সবচেয়ে স্বল্পতম:
DataTable destTable = sourceTable.Clone();
sourceTable.AsEnumerable().Where(row => /* condition */ ).ToList().ForEach(row => destTable.ImportRow(row));
sourceTable
তবে destTable
তাও কি পরিষ্কার হবে?
নীচে নমুনা হ'ল এক সারি অনুলিপি করার দ্রুততম উপায়। প্রতিটি ঘর কলামের নামের উপর ভিত্তি করে অনুলিপি করা হচ্ছে। যদি আপনার অনুলিপি করার জন্য নির্দিষ্ট কক্ষের প্রয়োজন না হয় তবে চেষ্টা করুন বা যুক্ত করুন add যদি আপনার 1 টির বেশি সারি অনুলিপি করতে চলেছে তবে নীচের কোডটি লুপ করুন।
DataRow dr = dataset1.Tables[0].NewRow();
for (int i = 0; i < dataset1.Tables[1].Columns.Count; i++)
{
dr[dataset1.Tables[1].Columns[i].ColumnName] = dataset1.Tables[1].Rows[0][i];
}
datasetReport.Tables[0].Rows.Add(dr);
ডেটাসেট 1. টেবিল [1]। সারি [ 0 ] [i]; আপনার নির্দিষ্ট সারি সূচকে সূচক 0 পরিবর্তন করুন অথবা আপনি লুপে যাচ্ছেন বা যদি এটি লজিকাল হয় তবে আপনি একটি পরিবর্তনশীল ব্যবহার করতে পারেন
যারা এর জন্য সিঙ্গল কমান্ড এসকিউএল কোয়েরি চান তাদের জন্য:
INSERT INTO TABLE002
(COL001_MEM_ID, COL002_MEM_NAME, COL002_MEM_ADD, COL002_CREATE_USER_C, COL002_CREATE_S)
SELECT COL001_MEM_ID, COL001_MEM_NAME, COL001_MEM_ADD, COL001_CREATE_USER_C, COL001_CREATE_S
FROM TABLE001;
এই প্রশ্নের সাথে থেকে তথ্য কপি হবে TABLE001
থেকে TABLE002
এবং আমরা অনুমান উভয় কলাম বিভিন্ন কলাম নামে ছিল।
কলামের নামগুলি এক-এক-তে ম্যাপ করা হয়:
COL001_MEM_ID -> COL001_MEM_ID
COL001_MEM_NAME -> COL002_MEM_NAME
COL001_MEM_ADD -> COL002_MEM_ADD
COL001_CREATE_USER_C -> COL002_CREATE_USER_C
COL002_CREATE_S -> COL002_CREATE_S
আপনার যদি কিছু শর্ত প্রয়োজন হয় তবে আপনি কোথায় ক্লজটি নির্দিষ্ট করতে পারেন।
পুরো ডেটাটেবলকে অনুলিপি করতে কেবল এটি করুন:
DataGridView sourceGrid = this.dataGridView1;
DataGridView targetGrid = this.dataGridView2;
targetGrid.DataSource = sourceGrid.DataSource;