PDA

View Full Version : سوال: Data Grid View



baran_mahdavi
شنبه 16 مرداد 1389, 22:02 عصر
سلام دوستان خسته نباشید
من در برنامه ام میخواهم داده هامو به جای اینکه ابتدا در textbox بنویسم مستقیما در datagridview وارد کنم؛ حالا نمیدونم چگونه این کارو کنم؟؟؟؟؟
.لطفا راهنمایی کنید.
و یه نکته دیگه : اینکه حالا اگر در دو سطر datagridview داده وارد کنم باید چگونه هر دو سطر همزمان save کنم.؟؟؟؟
برای ذخیره کردن پروسیجر insertدر sql نوشتم.
موفق باشید.

ucnazard
شنبه 16 مرداد 1389, 23:40 عصر
پرکردنش مثل textBoxمیمونه فرقی نداره.
مقدارش هم اینطوری میتونی بدست بیاری

dGrid.rows[0].cells[0].value

میلاد قاضی پور
یک شنبه 17 مرداد 1389, 00:05 صبح
دیتاگرید ویو خودش بصورت پیش فرض قابل ویرایش کرد اما اگه اینطور نیست، enable editing رو تیک بزنید در قسمت پنل پاپ آپ همونجایی که یه مثلث کوچیک گوشه گریدویو هست .
سوأل دوم :با استفاده از یک فوریچ




foreach(datagridviewrow row in datagridview.rows)
{
row.amale morede nazar
}

baran_mahdavi
یک شنبه 17 مرداد 1389, 09:54 صبح
جدا ؟ منکه راهنمایی نکردم ! فکر کنم ناراحت شدین ! Sorry
فقط خواستم بدونم از چه روشی میخواید استفاده کنین تا توضیح بیشتری بدم


نه ناراحت نشدم .
من مبتدی هستم اگر هر چی لازمه لطفا توضیح بدین
موفق باشید

C Sharp
یک شنبه 17 مرداد 1389, 10:46 صبح
خوب مسلما اگه بخواین داده ها رو تو گرید نمایش بدین و تغییر بدین (افزودن رکورد ، حذف ، ویرایش محتویات رکورد) باید اونو به منبع داده هاتون (مثلا DataTable)بایند کنید.
حالا اینکه منبع داده هاتون چیه و به چه روشی داده ها رو درونش میریزید ، روش ذخیره هم فرق میکنه
یا از Typed Dataset استفاده میکنید که خودش Adapter و DataTable مطابق نوع جداولتون میسازه و کار شما رو بسیار راحت میکنه

کدهای زیر واسه لود داده ها در گرید (البته اگه از ویزارد استفاده کنید که کدهای زیر رو خود VS براتون مینویسه)


YourDataSet.YourDataTable table = new YourDataSet.YourDataTable();

YourDataSetTableAdapters.YourDataTableAdapter adapter = new YourDataSetTableAdapters.YourDataTableAdapter();

adapter.Fill(table);

BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = table;

dataGridView.DataSource = bindingSource;


و این کدها هم واسه ذخیره داده های تغییر داده شده در دیتابیستون


bindingSource.EndEdit();

YourDataSetTableAdapters.YourDataTableAdapter adapter = new YourDataSetTableAdapters.YourDataTableAdapter();

adapter.Update((YourDataSet.YourDataTable)bindingS ource.DataSource);


میبینید که خیلی راحته ، البته روش های سخت هم وجود داره
ولی عقیده خودم اینه که اول کد نویسی یه مسئله رو یاد بگیرم و بعد سراغ ویزارد برم

behnam25214
یک شنبه 17 مرداد 1389, 15:51 عصر
برای ذخیره کردن میتونی از یه حلقه for هم استفاده کنی.
مثل قطعه کد زیر

for (i = 0; i < dataGridView1.RowCount - 1; i++)

mialdf
یک شنبه 17 مرداد 1389, 16:39 عصر
برای ذخیره کردن میتونی از یه حلقه for هم استفاده کنی.
مثل قطعه کد زیر

for (i = 0; i < dataGridView1.RowCount - 1; i++)

خوب درسته ولی برای اینکه هر بار که حلقه for تکرار میشه باید به ردیف بره و اطلاعات اونو هم ثبت کنه
حالا چه جوری باید بره ردیف بعدی؟
لطفاً vb.net

mmd2009
یک شنبه 17 مرداد 1389, 17:36 عصر
ببخشید ولی این کار اشتباه هستش اگر و فقط اگر منظورتون این باشه که تو گرید اطلاعات نمایش داده نمیه این درسته ولاغیر


مثلا این کد رو نوشتم العا واسه درج با گرید هستش مثل روشی که شما میگید



string address = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";

string Q = "Insert Into tb(name,family,tel)" +
"values(@name,@family,@tel)";
OleDbConnection con = new OleDbConnection(address);

OleDbCommand cmd = new OleDbCommand(Q, con);
con.Open();

for (int i = 0; i <= dataGridView1.RowCount - 2; i++)
{
cmd.Parameters.Add("name", OleDbType.Char).Value =
dataGridView1.Rows[i].Cells[0].Value.ToString();
cmd.Parameters.Add("family", OleDbType.Char).Value =
dataGridView1.Rows[i].Cells[1].Value.ToString();
cmd.Parameters.Add("tel", OleDbType.Char).Value =
dataGridView1.Rows[i].Cells[2].Value.ToString();


cmd.ExecuteNonQuery();
cmd.Parameters.Clear();

}

con.Close();
MessageBox.Show("Insert==True");

nPad.Net
یک شنبه 17 مرداد 1389, 20:28 عصر
و یه نکته دیگه : اینکه حالا اگر در دو سطر datagridview داده وارد کنم باید چگونه هر دو سطر همزمان save کنم.؟؟؟؟



برا insert دسته جمعی بد نیست به این تاپیک پست شماره 162 مراجعه کنید

http://barnamenevis.org/forum/showthread.php?t=50594&page=17

موفق باشید