PDA

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



Atiyeh1370
دوشنبه 18 شهریور 1392, 14:14 عصر
سلام
خسته نباشید
من این کد را تو برنامم نوشتم
به بانک اطلاعاتی درست وصل میشه و اطلاعات را تو datagridview هم درست نمایش میده
یه کلید هست که وقتی میزنم میخوام اطلاعات ثابتی(البته الان واسه خوانایی برنامه) به صورت یه رکورد وارد دیتابیس بشه
وقتی میزنم هیچ error نداره و پیغام messagebox نمایش داده میشه و وقتی دوباره دیتاگرید را پر میکنم درست اضافه شده
ولی وقتی برنامه را میبندم دیگه اون رکورد داخل بانک اطلاعاتی نیست انگار که اصلا اضافه نشده
کد دکمه را میذارم
ببخشید میدونم تو سایت خیلی در این مورد سوال و جواب بوده ولی هرچی گشتم جواب سوالمو پیدا نکردم
ممنون میشم کمک کنید

private void insertbtn_Click(object sender, EventArgs e)
{
int examNO_key = 12;
DateTime datetime = DateTime.Now;
string key = "a";
SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Exam.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand objcomand = new SqlCommand();
objcomand.Connection = sqlcon;
objcomand.CommandText = "INSERT INTO Exams (Exam#,Date_Time,ExamKey) VALUES(@Exam,@Date_Time,@ExamKey)";
objcomand.Parameters.AddWithValue("@exam", examNO_key);
objcomand.Parameters.AddWithValue("@Date_Time", datetime);
objcomand.Parameters.AddWithValue("@ExamKey", key);
sqlcon.Open();
objcomand.ExecuteNonQuery();
sqlcon.Close();
MessageBox.Show("Successed.");
}

RIG000
دوشنبه 18 شهریور 1392, 15:47 عصر
اگه بانکت رو تو پروژه میبینی رو بانکت کلیک کن و سپس اون رو به do not copy در پروپرتیس تغییر بده ...

Atiyeh1370
دوشنبه 18 شهریور 1392, 16:37 عصر
ببخشید منظورتون از پنل Database Explorer هست که تو C#‎ از سمت چپ باز میشه؟
اونجا روی بانک کلیک راست کردم و properties را زدم که همون پنل معمولی properties از سمت راست باز شد و تمام خصوصیتاش به صورت Read only بود.
میشه کامل بگید کجا و چی را باید تغییر بدم؟

roolinjax
دوشنبه 18 شهریور 1392, 16:47 عصر
سلام
نه منظورشون از پنجره ی Project Explorer هست
یه فایل بانک اطلاعاتی در کنار فرمهای برنامه تون هست
اون رو انتخاب کنید و خصوصیت Copy to output رو بر روی Copy if newer بذارید

Atiyeh1370
دوشنبه 18 شهریور 1392, 17:30 عصر
بله پیداش کردم ممنون
ولی وقتی این گزینه را روی Copy if newer میذارم مثل قبل هستش یعنی تا وقتی برنامه درحال اجرا هست نشون میده. حتی وقتی دوباره datagridview را پر میکنم سطری که تو insert زدم را نشون میده ولی برنامه بسته میشه باز اطلاعات قبلی تو دیتابیسه.

وقتی این گزینه را روی Do not copy گذاشتم برنامه اجرا نشد و این پیغام را داد:
An attempt to attach an auto-named database for file D:\Project asli\WindowsApplication1\WindowsApplication1\bin\D ebug\Exam.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

نمیدونم منظورش چیه یه فایل با همون نام وجود داره.
همین جوری تو پوشه فایلم هم که نگاه کردم این آدرسی که گفته فایل Exam.mdf نیست.

Atiyeh1370
سه شنبه 19 شهریور 1392, 17:49 عصر
میشه لطفا یه نفر کمک کنه؟
حداقل بگید کدم صددرصد درسته یا نه؟
ممنون

sohil_ww
سه شنبه 19 شهریور 1392, 18:18 عصر
به احتمال زیاد شما دیتا بیسی که داده ها شو مشاهده می کنید دیتا بیس که قبل از پوشه Debug قرار داره ولی کانکش استرینگتو به دیتا بیست کناره exe اشاره می کنه

roolinjax
چهارشنبه 20 شهریور 1392, 16:39 عصر
سلام
فایل بانک اطلاعاتی که توی پست قبل گفتم رو کلا حذف کنید و تمام کانکشن استرینگ هاتون رو به بانک اطلاعاتی که توی پوشه ی Debug دارید وصل کنید
این ساده ترین راهه
موفق باشید