PDA

View Full Version : عدم اعمال تغییرات بر روی دیتابیس



m-alizadeh
جمعه 23 اسفند 1387, 08:06 صبح
با سلام و تبریک پیشاپیش سال نو
من یک برنامه ساده با سی شارپ نوشتم که خیلی راحت از بانک طلاعاتی اس کیوال 2005اطلاعات رو select می کنه و در فرم نشون میده ولی هنگام افزودن یا حذف اطلاعات ، این عملیات رو فقط در حافظه یا بطور دقیق تر در دیتاست اعمال می کنه و در دیتابیس اصلی تغییرات اعمال نمیشه و با اجرای مجدد برنامه اطلاعات به حالت قبل از افزودن یا حذف کردن بر می گردن.
ممنون میشم اگه راهنمایی کنید
نمونه کد برای حذف کردن از بانک اطلاعاتی:



private void btnDelete_Click(object sender, EventArgs e)
{

int intPosition;
SqlCommand objCommand = new SqlCommand();

intPosition =this.BindingContext[objDataView].Position - 1;
if( intPosition < 0 )
intPosition = 0;
objCommand.Connection = objConnection;
objCommand.CommandText = "DELETE FROM authors WHERE id = @id";
objCommand.Parameters.AddWithValue("@id",this.BindingContext[objDataView,"id"].Current);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();
FillDataSetAndView();
BindFields();
this.BindingContext[objDataView].Position =intPosition;
ShowPosition();
ToolStripStatusLabel1.Text = "رکورد حذف گردید";

}

private void FillDataSetAndView()
{

objDataSet = new DataSet();

objDataAdapter.Fill(objDataSet,"authors");
objDataView = new DataView(objDataSet.Tables["authors"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
}



بقیه دستورات برای اتصال به بانک رو هم سراسری تعریف کرده ام.
با تشکر

bahar_engineer
دوشنبه 26 اسفند 1387, 10:24 صبح
سلام
روی دیتابیستون توی solution explorer کلیک کنید در بخش property خاصیت copy to output رو از copy always به copy if newer تغییر بدین ببینید درست می شه!!

hasan_esfahan
چهارشنبه 28 اسفند 1387, 14:23 عصر
البته این نکته هم حائز اهمیت است که این عدم تغیرات فقط در زمان طراحی است ولی پس از اتمام طراحی برنامه درست کار میکنه