PDA

View Full Version : سوال: مشکل با دیتابیس



mehdy.programmer
چهارشنبه 19 تیر 1392, 16:36 عصر
سلام!

من یه دیتابیس (تو مسیر پروژه) ساختم! حالا وقتی تو برنامه یه رکورد اضافه میکنم! دو مشکل دارم:

1. رکورد حذف نمیشه!!
2.وقتی برنامه رو باز و بسته میکنم ، دیتابیس ریست میشه و همه ی رکورد هام حذف میشه!!

کدی که برای حذف رکورد استفاده میکنم:

SqlCommand ObjCommand = new SqlCommand();
ObjCommand.CommandText = "DELETE FROM Main WHERE ID = @ID";
ObjCommand.Connection = ObjConnction;
ObjCommand.Parameters.AddWithValue("@ID", dataGridView1.CurrentRow.Cells[0].Value);
ObjConnction.Open();
ObjCommand.ExecuteNonQuery();
ObjConnction.Close();
FillDataSetAndView();

متد filldatasetandview اطلاعات رو از دیتابیس میریزه تو دیتاست و تو دیتاگرید نشون میده.

ObjDataAdapter.Fill(ObjDataSet, "Main");
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ObjDataSet;
dataGridView1.DataMember = "Main";

mousa1992
چهارشنبه 19 تیر 1392, 18:35 عصر
سلام
connection string رو بذار
ادرس که میدی از DataDirectory استفاده نکن ؛ ادرس فایل های دیتابیس کنار کلاس های برنامت رو بده - زمانی که خواستی setup بسازی Datadirectory رو بنویس

mehdy.programmer
پنج شنبه 20 تیر 1392, 11:31 صبح
اول با datadirectory نوشته بودم ولی با این کانکشن سترینگ هم همون مشکلاتو دارم فرقی نکرد....
SqlConnection ObjConnction = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename="+Application.StartupPath+@"\Personal-Schedule-Manager.mdf;Integrated Security=True");

mehdy.programmer
پنج شنبه 20 تیر 1392, 11:34 صبح
مرسی !!!! یافتم مشکل از کجا بود حلش کردم!!

vira1368
پنج شنبه 20 تیر 1392, 12:34 عصر
مرسی !!!! یافتم مشکل از کجا بود حلش کردم!!

میشه لطف کنید بگید چطوری مشکل رو حل کردید؟ چون دیتابیس SQL Express این حالته و تا زمانی که به حالت setup در نیاد کاریش نمیشه کرد

mousa1992
پنج شنبه 20 تیر 1392, 18:38 عصر
مرسی !!!! یافتم مشکل از کجا بود حلش کردم!! یافتی :|


میشه لطف کنید بگید چطوری مشکل رو حل کردید؟
با همون connection string

sohil_ww
پنج شنبه 20 تیر 1392, 19:22 عصر
مرسی !!!! یافتم مشکل از کجا بود حلش کردم!!

فکر کنم دیتایسی که تو server explorer نشون داده می شده مربوط به پوشه برنامه بود(پوشه قبل از Bin) ولی دیتایس برنامه در پوشه bin\debug بوده !

khokhan
جمعه 21 تیر 1392, 00:05 صبح
فکر کنم دیتایسی که تو server explorer نشون داده می شده مربوط به پوشه برنامه بود(پوشه قبل از Bin) ولی دیتایس برنامه در پوشه bin\debug بوده !

علت از این بوده که فایل دیتابیس رو درSolution Explorer اضافه کرده بوده و هر بار که پروژه باز وبسته می شده یه کپی از فایل دیتابیس خالی در پوشه debug کپی می شده و اطلاعات رو پاک می کرده :لبخند:

sohil_ww
جمعه 21 تیر 1392, 10:51 صبح
علت از این بوده که فایل دیتابیس رو درSolution Explorer اضافه کرده بوده و هر بار که پروژه باز وبسته می شده یه کپی از فایل دیتابیس خالی در پوشه debug کپی می شده و اطلاعات رو پاک می کرده :لبخند:

و کانشکن استرینگم به دیتابیس تو پوشه ی Debug اشاره می کرده
درست می گم ؟

c_doost
جمعه 21 تیر 1392, 10:56 صبح
سلام

از این دست مشکلات خیلی زیاد پیش میاد توی سایت مطالب پراکنده در این زمینه زیاد وجوود داره ولی مطلبی که تمام این مشکلات این دستی را جواب بده وجود نداره اگر کسی تجربه بیشتری در این زمینه ها داره و یه آموزش کامل بزاره ممنون میشم

mehdy.programmer
جمعه 21 تیر 1392, 15:28 عصر
من تو کانکشن سترینگم از DataDirectory استفاده میکردم در نتیجه هر بار که دیباگ میکردم یه دیتابیس جدید برام میساخت و همه ی اطلاعاتم پاک میشد برای همین تا قبل از انتشار برنامه مستقیما به پوشه سولوشن (نه bin و debug) آدرس میدادم!!! و وقتی خواستم منتشر کنم دوباره کانکشن سترینگم رو به DataDirectory تغییر دادم!

مشکل حذف نشدن رکورد هام هم اصلا یه چی دیگه بود و به این ربطی نداشت!

مرسی از دوستانی که کمک کردن مشکلم رو حل کنم!