PDA

View Full Version : سوال: مشکل در ذخیره کرذن به روش linq



mehran788
دوشنبه 21 اسفند 1391, 13:41 عصر
با سلام و خسته نباشید
من کد زیر را برای save در store procedure نوشته ام

ALTER procedure dbo.psave @Row int , @Name nvarchar(50),@Family nvarchar(50)
as
insert into table1 values (@Row,@Name,@Family)
return


و در باتون ذخیره اینگونه نوشته ام

private void btnsave_Click(object sender, EventArgs e)
{
var db = new LINQDataContext();
db.psave(Convert.ToInt32(txtrow.Text), txtname.Text, txtfamily.Text);
gvtable1.DataSource = db.Table1s;
}

این کد درست کار می کنه و ذخیره می کنه ولی وقتی از برنامه خارج می شم و دوباره اجرا می کنم می بینم بانک اطلاعاتی خالیه.مشکل از کجاست؟

daneshjo90
دوشنبه 21 اسفند 1391, 15:01 عصر
با سلام
دوست عزیز فایل های دیتابیستو به داخل پوشه Bin انتقال بده

امیدوارم مشکلت حل بشه

موفق باشی

mehran788
دوشنبه 21 اسفند 1391, 15:42 عصر
چون از روش linq استفاده می کنم خودش یه کپی از بانک اطلاعاتی رو در پوشه Bin>Debug انداخته

mehran788
دوشنبه 21 اسفند 1391, 15:47 عصر
چون من دارم از روش linq استفاده می کنم خودش یه کپی از بانک اطلاعاتی تو Bin\Debug انداخته ولی بازم کار نمی کنه

mehran788
سه شنبه 22 اسفند 1391, 12:44 عصر
دوستان کسی در این مورد اطلاعاتی نداره که به من بگه؟

mehdi zanjani
سه شنبه 22 اسفند 1391, 13:37 عصر
به احتمال 99% از sql express استفاده می کنی درسته؟؟

mehran788
سه شنبه 22 اسفند 1391, 15:43 عصر
بله درسته ولی من تا حالا همیشه با همین sql expressکار کردم ولی اینبار تازه داشتم روش linq رو یاد میگرفتم و از این روش استفاده کردم که این مشکل بوجود اوم وگرنه تو برنامه های قبلی کاملا درست بود.حالا باید چیکار کنم تا درست بشه؟

Mahmoud.Afrad
سه شنبه 22 اسفند 1391, 17:28 عصر
دیتابیس رو انتخاب کنید. از پنجره properties خصوصیت Copy To Output Directory را روی Copy if newer بزارید.

behrozi.ir
سه شنبه 22 اسفند 1391, 17:50 عصر
سلام
کد را به این کدی که گذاشتم اصطلاح کن ، شاید درست بشه
LINQDataContext db = new LINQDataContext();
db.psave(Convert.ToInt32(txtrow.Text), txtname.Text, txtfamily.Text);
gvtable1.DataSource = db.Table1s;
db.SubmitChanges();

RED-C0DE
چهارشنبه 23 اسفند 1391, 06:48 صبح
همین ک Mahmoud.Afrad گفت رو انجام بدین..

وقتی ک یک ریسورس مثل ی فایل بانک اطلاعاتی sql express رو ب پروژتون اضافه می کنید, نسخه اصلی در کنار سایر سورسهای پروژه قرار می گیره (ک اسمش رو می زاریم A) و از پنجره ی solution explorer می تونید ببینیدش.
بصورت پیش فرض , موقع هر Build پروژه , این فایل در مسیر Bin\Debug از شاخه پروژتون کنار فایل اجرایی برنامتون کپی می شه (ک اسمش رو می ذاریم B) و تغییرات قبلی شما انگار می پره.

این فایل (مثل خیلی از فایلها و ریسورسهای دیگه که ب پروژه اضافه می شه کرد) , رو می شه تنظیم کرد ک هر موقع ک پروژه رو build کردین ,

آیا از نسخه ی A کپی بشه روی B (همین حالت پیش فرض ک باعث می شه هر دفعه تغییرات شما overwrite بشه و فکر کنین مشکلی پیش اومده ک ثبت نشده!) یا
اگه نسخه ی A جدیدتر بود و با دفعه ی قبلی فرق می کرد کپی کنه (Copy if newer) یا
اصلا کپی نکنه (Do Not Copy)


برای تنظیم این روال , بعد از انتخاب فایل مربوط ب بانک اطلاعیتون از پنجره ی Solution Explorer , مشخصات اون فایل رو از پنجره ی Properties می تونین ببینید, و پراپرتی Copy to output directory رو بسته ب نیاز تنظیمش کنید ک همون گزینه ی Copy If Newer برای شما الان بهترین گزینس

برای مطالعه ی بیشتر ^ (http://briannoyes.net/2006/02/22/DebuggingSQLExpressAppsBewareVSCopyToOutputDirecto ryDefault.aspx)

mehran788
چهارشنبه 23 اسفند 1391, 07:39 صبح
با عرض پوزش من رو بانک اطلاعاتی کلیک راست کردم و properties رو انتخاب کردم اما در قسمت سمت راست که پراپرتی ها رو نشون می ده اون چیزی که شما گفتین رو پیدا نکردم .کجای کارم ایراد داشت؟

alexmcse
چهارشنبه 23 اسفند 1391, 11:51 صبح
private void btnsave_Click(object sender, EventArgs e)
{
var db = new LINQDataContext();
db.psave(Convert.ToInt32(txtrow.Text), txtname.Text, txtfamily.Text);
db.submitchange();
gvtable1.DataSource = db.Table1s;
}

Mahmoud.Afrad
چهارشنبه 23 اسفند 1391, 17:26 عصر
از پنجره Solution explorer روی دیتابیس راست کلیک کن نه server explorer.

mehran788
چهارشنبه 23 اسفند 1391, 19:42 عصر
دوستان مشکلم حل شد.ممنون از همگی که وقت گذاشتین

G.hemati
یک شنبه 03 فروردین 1393, 13:38 عصر
با سلام خدمت تمامی دوستان و اساتید محترم تالار #C و تبریک سال نو به همه عزیزان

من به تازگی علاقمند به برنامه نویسی با #C شدم و از جستجوی در تالار و تجربیات دوستان یه نیمچه برنامه ای خواستم برای شروع بنویسم

من برای اتصال به بانک اطلاعاتی از روش LINQ استفاده کردم و همانند دوست عزیزمون mehran788 به عدم ذخیره سازی اطلاعات برخورد کردم . از پنجره properties خصوصیت Copy To Output Directory را روی هم با Copy if newer ست کردم.

ولی مشکل همچنان پا برجاست. حجم فایل بیشتر از حد مجاز بود و مجبور شدم تصاویر محیط برنامه را ضمیمه کنم

ممنون میشم دوستان راهنمایی بفرمایین