প্রোগ্রামাগতভাবে ডেটাগ্রিডভিউতে কীভাবে একটি নতুন সারি যুক্ত করবেন


157

যদি সারি যোগ করুন DataTable

DataRow row = datatable1.NewRow();
row["column2"]="column2";
row["column6"]="column6";
datatable1.Rows.Add(row);

কেমন DataGridView??


2
গ্রাডভিউয়ের ডেটাসোর্সটি ডেটাটেবলের সমান করে সেট করে আপনি একটি ডেটাগ্র্যাবলের ডেটা যুক্ত করতে পারেনdatagridview1.DataSource = yourDataTable
জোনাথন ভ্যান ড্যাম

উত্তর:


248

আপনি করতে পারেন:

DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
yourDataGridView.Rows.Add(row);

বা:

DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);

অন্য উপায়:

this.dataGridView1.Rows.Add("five", "six", "seven","eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");

থেকে: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows.aspx


28
আপনাকে ধন্যবাদ, যদি আমার ডেটাগ্রিডভিউয়ের কোনও সারি না থাকে, তবে আমি কীভাবে সারি যুক্ত করতে পারি?
এল কে ইয়েং

3
@ ডেভিডইউং এমজিএর উত্তরগুলি সেই ক্ষেত্রে উত্তর দিতে আপনাকে সহায়তা করতে পারে, আপনার ডেটা উত্স কী? এটি একটি ডেটাটেবল? যদি তাই হয় তবে আপনি ডেটাটেবলটিতে সারিটি যুক্ত করতে পারেন এবং তারপরে ডেটা উত্সটি রিফ্রেশ করতে পারেন
হাবিব

7
আপনি যেমনটি করেছিলেন তেমনভাবে আপনি সরাসরি কলামটিকে রেফারেন্স করতে পারবেন না: সারি C সেল ["কলাম 2"] Val ... আপনাকে প্রথমে সূচীটি সন্ধান করতে হবে: সারি।
টিজ

2
আদর্শভাবে, আপনি ক্লোন করা উচিত RowTemplateএর DataGridView। যখন আপনার বিভিন্ন সারি জুড়ে বিভিন্ন শৈলী রয়েছে তখন এটি একটি সমস্যা হয়ে ওঠে DataGridView
অ্যান্টনি

7
প্রায় 20 টি সমাধান (গুগল দ্বারা পাওয়া) পড়ার পরে এটিই আমি বুঝতে পারি।
সি

49

এটার মত:

var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....

ধন্যবাদ, পাঠ্যের সাধারণ সম্পাদনযোগ্য তালিকার জন্য যদি আপনার একটি সাধারণ একক কলাম ডেটাগ্রিডভিউ থাকে তবে এটি সত্যিই ভাল কাজ করে।
বব মোস

এটি আপনার ক্ষেত্রে গ্রিড দর্শনের জন্য কোনও ডেটা উত্স বরাদ্দ না করার ক্ষেত্রে দুর্দান্ত কাজ করে
ঝাবার

নিয়ন্ত্রণটি ডেটা-সীমাবদ্ধ থাকাকালীন সারিগুলি ডাটাগ্রিডভিউয়ের সারি সংগ্রহে প্রোগ্রামগতভাবে যুক্ত করা যায় না।
ডারথ সুচুক

39

বলুন আপনার কাছে একটি ডেটাগ্রিডভিউ রয়েছে যা কোনও ডেটাসেটের সাথে আবদ্ধ নয় এবং আপনি প্রোগ্রামিকভাবে নতুন সারিগুলি তৈরি করতে চান ...

আপনি এটি কীভাবে করেন তা এখানে।

// Create a new row first as it will include the columns you've created at design-time.

int rowId = dataGridView1.Rows.Add();

// Grab the new row!
DataGridViewRow row = dataGridView1.Rows[rowId];

// Add the data
row.Cells["Column1"].Value = "Value1";
row.Cells["Column2"].Value = "Value2";

// And that's it! Quick and painless... :o)

3
+1: এটিই একমাত্র সমাধান যা সংজ্ঞায়িত হিসাবে কলামের নামগুলি বাস্তবে ব্যবহার করে datagridview.Columns.Add("columnname"), কোনও ডাটা টেবিলের প্রয়োজন হয় না এবং একটি হাসি দিয়ে শেষ হয়
রোল্যান্ড

32

এটার মত:

 dataGridView1.Columns[0].Name = "column2";
 dataGridView1.Columns[1].Name = "column6";

 string[] row1 = new string[] { "column2 value", "column6 value" };
 dataGridView1.Rows.Add(row1);

অথবা আপনাকে পৃথক পৃথকভাবে যথোপযুক্ত মানগুলি নির্ধারণ করতে হবে .Rows():

 dataGridView1.Rows[1].Cells[0].Value = "cell value";

1
ধন্যবাদ. যদি ডেটাগ্রিডভিউতে 30 টি কলাম থাকে তবে আমি কেবল কলাম 2 এবং কলাম 6 এ মান যুক্ত করতে চাই এবং বাকীগুলি নাল বা ফাঁকা রাখতে চাই। কিভাবে আমি এটি করতে পারব??
এল কে ইয়েং

1
@DavidYeung, আপনি যা করতে পারেন: dataGridView1.Rows[1].Cells[0].Value = "cell value";
মাহমুদ গামাল

1
ডেটাগ্রিডভিউ.আরওস.এড যোগ করুন (নাল, 2, নাল, নাল, নাল, 6);
মিস্টারফক্স

int addRowIndex = ডেটাগ্রিডভিউরউজ.এড (); var addRow = ডেটাগ্রিডভিউরোজ [অ্যাড রড ইন্ডেক্স]; এখন সমস্ত মানগুলি ডিফল্ট মান দিয়ে পূর্ণ হয়, আপনার কেবলমাত্র সেই কক্ষগুলি পরিবর্তন করতে হবে যা ডিফল্ট নয়: যুক্তড্রো.কেলস [কলাম 2.আইডেক্স]। মূল্য = মাইভ্যালু; (ধরে নিলাম কলাম 2 একটি ডেটাগ্রিডভিউ কলাম)
হ্যারাল্ড কপুলস

24

সঙ্গে কোন সারি সঙ্গে একটি DGV একটি নতুন সারি যোগ করার পদ্ধতি যোগ () উত্থাপন SelectionChanged ঘটনা আগে আপনি কোনো ডেটা ঢোকাতে পারবেন (অথবা বেঁধে ট্যাগ সম্পত্তি মধ্যে একটি বস্তুর)।

রো টেম্পলেট থেকে একটি ক্লোন সারি তৈরি করা নিরাপদ ইমো :

//assuming that you created columns (via code or designer) in myDGV
DataGridViewRow row = (DataGridViewRow) myDGV.RowTemplate.Clone();
row.CreateCells(myDGV, "cell1", "cell2", "cell3");

myDGV.Rows.Add(row);

3
ক্লোন () পদ্ধতিটি একটি সারিতে ফিরে এসেছে তবে কোনও ঘর নেই। সারি.সেলস.কাউন্ট 0.
মার্কাণ্ড ভট্ট

5
মার্ক্যান্ড: আপনার সেল সংগ্রহ শুরু করার জন্য ডেটাগ্রিডভিউ র করুন re ক্রিয়েট সেলগুলি কল করুন।
নিরব সুর

নিয়ন্ত্রণটি ডেটা-সীমাবদ্ধ থাকাকালীন সারিগুলি ডাটাগ্রিডভিউয়ের সারি সংগ্রহে প্রোগ্রামগতভাবে যুক্ত করা যায় না।
দারথ সুচুক

10

ডিজিভিউ ফাঁকা থাকলে এইভাবে আমি একটি সারি যুক্ত করব: (মাইডাটাগ্রিডভিউতে আমার উদাহরণে দুটি কলাম রয়েছে)

DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);

row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";

myDataGridView.Rows.Add(row);

দস্তাবেজের মতে: "ক্রিয়েট সেলস () বিদ্যমান কোষগুলি সাফ করে এবং সরবরাহিত ডেটাগ্রিডভিউ টেম্পলেট অনুযায়ী তাদের টেম্পলেট সেট করে"।


2
ধন্যবাদ এটি আমার পক্ষে খুব কার্যকর ছিল, আমি "সারিটি। ক্রিয়েটসেলস (আমার ডেটাগ্রিডভিউ) মিস করছি;"
f4d0

নিয়ন্ত্রণটি ডেটা-সীমাবদ্ধ থাকাকালীন সারিগুলি ডাটাগ্রিডভিউয়ের সারি সংগ্রহে প্রোগ্রামগতভাবে যুক্ত করা যায় না।
দারথ সুচুক

8

গ্রিড যদি কোনও ডেটাসেট / টেবিলের সাথে আবদ্ধ হয় তবে এটি একটি বাঁধাইয়ের উত্সের মতো ব্যবহার করা আরও ভাল

var bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
grid.DataSource = bindingSource;

//Add data to dataTable and then call

bindingSource.ResetBindings(false)    

5

এখানে এইরকম আরেকটি উপায়

 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        dataGridView1.ColumnCount = 3;

        dataGridView1.Columns[0].Name = "Name";
        dataGridView1.Columns[1].Name = "Age";
        dataGridView1.Columns[2].Name = "City";

        dataGridView1.Rows.Add("kathir", "25", "salem");
        dataGridView1.Rows.Add("vino", "24", "attur");
        dataGridView1.Rows.Add("maruthi", "26", "dharmapuri");
        dataGridView1.Rows.Add("arun", "27", "chennai"); 
    }

4

আপনি যদি ট্যাগ যুক্ত করার মতো সেল মান স্ট্রিং থেকে আলাদা করে কোনও কিছুর হেরফের করতে চান তবে এটি চেষ্টা করুন:

DataGridViewRow newRow = (DataGridViewRow)mappingDataGridView.RowTemplate.Clone();
newRow.CreateCells(mappingDataGridView);

newRow.Cells[0].Value = mapping.Key;
newRow.Cells[1].Value = ((BusinessObject)mapping.Value).Name;
newRow.Cells[1].Tag = mapping.Value;

mappingDataGridView.Rows.Add(newRow);

3
yourDGV.Rows.Add(column1,column2...columnx); //add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue; //edit the value

আপনি একটি নতুন সারি তৈরি করতে পারেন এবং তারপরে এটিকে ডেটাগ্রিডভিউতে যুক্ত করতে পারেন:

DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);

2

আপনি যদি একটি তালিকা আবদ্ধ হয়

List<Student> student = new List<Student>();

dataGridView1.DataSource = student.ToList();
student .Add(new Student());

//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;

আপনি যদি ডেটা টেবিলকে বাধ্য করেন

DataTable table = new DataTable();

 DataRow newRow = table.NewRow();

// Add the row to the rows collection.
table.Rows.Add(newRow);

1

ডেটাগ্রিডভিউ থেকে অনুলিপি করার একটি উদাহরণ এবং একই ডেটাগ্রিডভিউতে একটি নতুন সারি যুক্ত হয়েছে:

DataTable Dt = new DataTable();
Dt.Columns.Add("Column1");
Dt.Columns.Add("Column2");

DataRow dr = Dt.NewRow();
DataGridViewRow dgvR = (DataGridViewRow)dataGridView1.CurrentRow;
dr[0] = dgvR.Cells[0].Value; 
dr[1] = dgvR.Cells[1].Value;              

Dt.Rows.Add(dR);
dataGridView1.DataSource = Dt;

1
//Add a list of BBDD
var item = myEntities.getList().ToList();
//Insert a new object of type in a position of the list       
item.Insert(0,(new Model.getList_Result { id = 0, name = "Coca Cola" }));

//List assigned to DataGridView
dgList.DataSource = item; 

আপনি দয়া করে ব্যাখ্যা করতে পারেন কীভাবে এটি সমস্যার সমাধান করবে?
ফানি

1
//header
dataGridView1.RowCount = 50;
dataGridView1.Rows[0].HeaderCell.Value = "Product_ID0";


//add row by cell 
 dataGridView1.Rows[1].Cells[0].Value = "cell value";

1

সাফল্য অর্জন করেছেন ইতিমধ্যে একটি সংজ্ঞায়িত তাহলে DataSource, আপনি পেতে পারেন DataGridViewএর DataSourceএবং যেমন নিক্ষেপ Datatable

তারপরে একটি নতুন যুক্ত করুন DataRowএবং ক্ষেত্রের মানগুলি সেট করুন।

এ নতুন সারি যুক্ত DataTableকরুন এবং পরিবর্তনগুলি স্বীকার করুন।

সি # তে এটি এমন কিছু হবে ..

DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();

drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";

dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();

0

একটি উইন্ডোজ অ্যাপ্লিকেশন বিবেচনা করুন এবং বোতাম ক্লিক ইভেন্ট ব্যবহার করে এই কোডটি এতে রাখুন।

dataGridView1.Rows
                .Add(new object[] { textBox1.Text, textBox2.Text, textBox3.Text });

0
string[] splited = t.Split('>');
int index = dgv_customers.Rows.Add(new DataGridViewRow());
dgv_customers.Rows[index].Cells["cust_id"].Value=splited.WhichIsType("id;");

তবে সচেতন হোন, WhichIsTypeআমি তৈরি করা এক্সটেনশন পদ্ধতিটি কি।


2
আপনি যখন কোনও কোড দিয়ে কোনও প্রশ্নের উত্তর দেন, এবং সেই কোডটির জন্য আপনার তৈরি করা একটি কাস্টম এক্সটেনশন পদ্ধতি প্রয়োজন হয় এবং আপনি কাস্টম পদ্ধতির কোডটি অন্তর্ভুক্ত করেননি, এটি কোনও মারাত্মকভাবে কার্যকর উত্তর নয়।
ব্রায়ান

বখশিশের জন্য ধন্যবাদ. আমি এটাকে খুব খারাপ মনে করি। তবে সেই মেথোড এটির কোনও গুরুত্বপূর্ণ মেথোড নয়
রেঞ্জিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.