PDA

View Full Version : مشکل با dataGrideView فوری



akram23
دوشنبه 15 خرداد 1391, 12:47 عصر
سلام و خسته نباشید خدمت تمامی مهندسین
یه سوال داشتم، آیا کسی می دونه چرا این کد من کار نمی کنه؟؟؟؟!!!!!:گیج:

ds = ds1.Copy();

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "contacts";


OleDbCommandBuilder comB = new OleDbCommandBuilder(dAdapter);
dAdapter.UpdateCommand = comB.GetUpdateCommand();
dAdapter.Update(ds);
مشکل من این هست که داده هایی رو که update می کنم در بانک ثبت نمی شود!!!
توضیحات که چرا کد را اینطوری نوشتم:
dataGrid من باید قابلیت این را داشته باشه که محتواش ویرایش شود از طریق خودش اما تغیراتش ثبت نشه
یعنی کاربر می تونه داده ها را از تو خود dataGridView تغییر بده ولی خب این تغییرات هیچ تاثیری در داده های پایگاه نباید بگذارد به جاش من تعدادی textBox قرار دادم داده های سطر جاری را نشان می دهد و تغیراتی که روی اینها انجام می شود با کلیک بر روی ثبت باید در پایگاه اعمال شود و نتیجه بر روی dataGrid نمایش داده شود.
در نتیجه من مجبوری از دوتا dataSet استفاده کنم که یکی تغییرات textBox را نگه می دارد(ds1)و برام مهم هست و دیگری برای داده های dataGrid را نشان می دهد(ds)حال زمان ثبت باید داده های dataSet مربوط به textbox ها در پایگاه ثبت شده و حاصل بر روی dataGrid نشان داده شود.:متفکر:
ممنون می شم اگر کسی مشکل این کد را به من بگوید

Arash_janusV3
دوشنبه 15 خرداد 1391, 13:46 عصر
این روش شما منطقی نیست باید تغییراتی را انجام بدید
شما باید جدول را update کنید
کاری به گرید نداشته باشین

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

nahidmoh
دوشنبه 15 خرداد 1391, 14:12 عصر
سلام سوالتونو خوب متوجه نشدم ولی اون چیزی که استنباط کردم رو جواب میدم
بعد از بایند کردن گرید ویو
یک Template Field در گرید خود ایجاد کنید و در آن یک Button قرار دهید و در Edit Data Binding آن Command Argument را روی id آن سطر که میخواهید ویرایش کنید ست کنید به این صورت :
Eval("id")
و در command Name آن button در propertiesیک نام برایش تعیین کنید مثلا change سپس در event دیتا گرید خود در قسمت Row Command دابل کلیک کنید تا وارد محیط کدش شوید سپس :
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "change")
{
int id = Convert.ToInt32(e.CommandArgument);
SqlConnection con = new SqlConnection("Data Source=ORBIT-PC;Initial Catalog=kitchen;Integrated Security=True");
string str= "Update tbl SET name=N'"+TextBox1.Text+"' where id='"+id+"' ";
SqlCommand cmd = new SqlCommand(str, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();

}
}

aspnevis
دوشنبه 15 خرداد 1391, 14:17 عصر
سلام دوست عزیز فراموش نکن برای اینکه grid view بتونه اطلاعات ویرایش شده رو نشون بده علاوه بر کدههای که دوستان گفتن ، باید auto post back رو هم چک کنی! وگرنه با وجود اعمال ویرایش بازم نشون داده نمی شه!

akram23
دوشنبه 15 خرداد 1391, 18:56 عصر
حل شد ،
با تشکر از راهنمایی شما دوستان عزیز:لبخندساده: