با سلام
وقتی با ویزارد من greidرا به دیتا بیس وصل می کنم و binding navagate را هم به اونا وصل می کنم همه تغییرات در greid را که وارد می کنم در دیتا ست ذخیره ولی وارد دیتابیس نمی شه ؟باید چه کدی بنویسم تا okبشه؟
با تشکر از زحمات شما
با سلام
وقتی با ویزارد من greidرا به دیتا بیس وصل می کنم و binding navagate را هم به اونا وصل می کنم همه تغییرات در greid را که وارد می کنم در دیتا ست ذخیره ولی وارد دیتابیس نمی شه ؟باید چه کدی بنویسم تا okبشه؟
با تشکر از زحمات شما
خوب معلومه شما باید با استفاده از یه table adapter اطلاعاتت رو وارد database کنی. میدونم منظور شما دقیقا چی هست که بطور مستقیم تغییرات رو دیتابیس اعمال بشه ولی فک نکنم چنین امکانی وجود داشته باشه.
پرسشت پرسش من هم بود ولي هرچه وقت گذاشتم و جستجو كردم چيزي پيدا نكردم. نه در سايتهاي فارسي و نه در سايتهاي انگليسي.
فكر كنم بهتر باشه از button و كد نويسي استفاده كني.
با سلام
ببینید من می خواهم وقتی با ویزار به گرید وصل می شوم و اطلاعات جدول را نمایش میده بتونم با خود گرید کل اطلاعات را ویرایش و یا اظافه کنم که میشه این کارا کرد ولی وقتی که اضافه یا ویرایش می کنم بعد از بستن فرم و اجرا کردن مجدد آن تغییرات من اعمال نشده است
این لینک رو ببینید
http://www.barnamenevis.org/sh...CommandBuilder
من که درست متوجه نشدم ولی فکر کنم باید بعد از تغییرات ، ذخیره کنی بعد برنامه رو ببندی.
سلام
من از لینکی که گذاشتید چیزی متوجه نشدم
من فقط دستوری را می خواهم که بشه اطلاعاتی را که وارد گرید کردم آپدیت بشه و وارد بانک شود.
معرفی اشیا از کلاسهای مورد نیاز
کد:
SqlConnection sqlConnection = new SqlConnection("Data Source=100.10.1.5;Initial Catalog=Attendence;Integrated Security=False;User ID=sa;Password=master");
SqlCommand sqlCommand;
SqlDataAdapter adapter;
DataTable DT;
انتقال اطلاعات به DataTable و نمایش اون توی گرید
کد:
string sqlCmd = "Select * From Personel";
sqlCommand = new SqlCommand(sqlCmd, sqlConnection);
adapter = new SqlDataAdapter(sqlCommand);
DT = new DataTable("Personel");
adapter.Fill(DT);
dataGridView1.DataSource = DT;
ثبت تغییرات ایجاد شده در بانک
کد:
sqlCommand = new SqlCommand("Select * From Personel", sqlConnection);
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(adapter);
adapter.SelectCommand = sqlCommand;
adapter.InsertCommand = sqlCmdBuilder.GetInsertCommand(true);
adapter.UpdateCommand = sqlCmdBuilder.GetUpdateCommand(true);
adapter.DeleteCommand = sqlCmdBuilder.GetDeleteCommand(true);
adapter.Update(DT);
با کد بالا اگه کاربر یک ردیف به گرید اضافه کنه یا حذف کنه و یا تغییری توی یک ردیف ایجاد کنه تمام این تغییرات با هم توی بانک اعمال میشه
البته لازم به توضیح که در صورتی که ردیفی از گرید حذف بشه و اون رکورد توی یه جدول دیگه استفاده شده باشه (منظورم همون کلید خارجی) در این صورت موقع Update باید اون رو هم کنترل کنی
دوست عزیز اگه از SQLExpress استفاده می کنی ، یک بار برنامه رو از روی فایل exe واقع در پوشه bin\debug اجرا کن و داده ها رو تغییر بده و ثبت کن . بعد فرم رو ببند و دوباره برنامه رو از روی فایل exe اجرا کن و بررسی کن که آیا تغییرات قبلی به پایگاه داده اعمال شده یا نه.