Hello everyone I write a code using VC#2008 to allow the user to enter many DataRows
sequntially using an index to dataTable
as he needs using yes/no dialogresult.
firstly the the user enter his data using textboxes and comboboxes using a function, then the dilodresult pops up "do you want to enter more records?" if yes clear the textboxes and call the function and plusing the index
and show the data at datagridview ,but it doesnot show any data at the datagridviewand the dialogResult countinue showing without performing anything
this the fuction code:
public DataTable showout2(int index, bool bl)
{
DataTable dtab = new DataTable();
DataRow row = dtab.NewRow();
string[] newRow = new string[14];
try
{
DataColumn dc1 = new DataColumn("رقم المتسلسل");
DataColumn dc2 = new DataColumn("رقم الحساب");
DataColumn dc3 = new DataColumn("أسم الحساب");
DataColumn dc4 = new DataColumn("المالك");
DataColumn dc5 = new DataColumn("تاريخ");
DataColumn dc6 = new DataColumn("قيمة");
DataColumn dc7 = new DataColumn("نوع العملة");
DataColumn dc8 = new DataColumn("البيان");
DataColumn dc9 = new DataColumn("الدائن");
DataColumn dc10 = new DataColumn("المدين");
DataColumn dc11 = new DataColumn(" اجمالي الدائن");
DataColumn dc12 = new DataColumn("اجمالي المدين");
DataColumn dc13 = new DataColumn("تفاصيل");
DataColumn dc14 = new DataColumn("التأكيد");
dtab.Columns.Add(dc1);
dtab.Columns.Add(dc2);
dtab.Columns.Add(dc3);
dtab.Columns.Add(dc4);
dtab.Columns.Add(dc5);
dtab.Columns.Add(dc6);
dtab.Columns.Add(dc7);
dtab.Columns.Add(dc8);
dtab.Columns.Add(dc9);
dtab.Columns.Add(dc10);
dtab.Columns.Add(dc11);
dtab.Columns.Add(dc12);
dtab.Columns.Add(dc13);
dtab.Columns.Add(dc14);
DateTime date = new DateTime();
date = DateTime.Today;
row[0] = numb.Text.ToString();
row[1] = Account_numb.Text.ToString();
row[2] = account_nam.Text.ToString();
row[3] = owner.Text;
row[4] = curency.Text.ToString();
row[5] = date.ToString();
row[6] = curncyval.Text;
row[7] = note.Text;
row[8] = Depet.Text;
row[9] = criedt.Text;
row[10] = Total_depet.Text;
row[11] = Total_credit.Text;
row[12] = Details.Text;
row[13] = "false";
dtab.Rows.InsertAt(row, index);
dataGridView1.DataSource = dtab;
dataGridView1.DataSource = dtab;
DialogResult dialogResult = MessageBox.Show("تريد أدخال سجل أخر؟", "Some Title", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
row[0] = numb.Text.ToString();
row[1] = Account_numb.Text.ToString();
row[2] = account_nam.Text.ToString();
row[3] = owner.Text;
row[4] = curency.Text.ToString();
row[5] = date.ToString();
row[6] = curncyval.Text;
row[7] = note.Text;
row[8] = Depet.Text;
row[9] = criedt.Text;
row[10] = Total_depet.Text;
row[11] = Total_credit.Text;
row[12] = Details.Text;
row[13] = "false";
numb.Clear();
owner.Clear();
Account_numb.Text = " ";
account_nam.Text = " ";
curency.Text = " ";
curncyval.Clear();
Total_credit.Clear();
Total_depet.Clear();
note.Clear();
Details.Clear();
criedt.Clear();
Depet.Clear();
return showout2(++index, true);
}
else if (dialogResult == DialogResult.No)
{
return dtab;
}
}
I don't understand what exactly the problem is but its seems that you are trying to add rows to datagridview and after added new row you ask the user "if he wan't to add more ?"
you first need to initialize the datagridview once ,when application load or in constructor.
public void initDatagrid()
{
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "رقم المتسلسل" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "رقم الحساب" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "أسم الحساب" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "المالك" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "تاريخ" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "قيمة" });
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "نوع العملة" });
//...
}
and after that you call this function to add rows
public void showout2()
{
object[] newRow = new object[14];
try
{
newRow[0] = "test";
newRow[1] = "test";
newRow[2] = "test";
newRow[3] = "test";
newRow[4] = "test";
newRow[5] = "test";
newRow[6] = "test";
//...
dataGridView1.Rows.Add(newRow);
if (MessageBox.Show("تريد أدخال سجل أخر؟", "Some Title", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
//clear data here ..
}
}
catch (Exception ex)
{
}
}
EX:
public yourClass()
{
InitializeComponent();
initDatagrid();
}
private void AddButton_Click(object sender, EventArgs e)
{
showout2();
}