PDA

View Full Version : عملکرد EF در سیستم مقصد



ho3ein.3ven
دوشنبه 04 شهریور 1392, 14:49 عصر
سلام بر دوستان برنامه نویس گرامی
من برای ارتباط با دیتابیسم از Ef استفاده می کنم . حالا من بخوام این نرم افزار رو به مشتری تحویل بدم چه کار هایی رو باید انجام بدم ؟ اس کیو ال سرور هم با ستاپ ساز نصب می کنم . آیا فقط ایجاد کردن دیتابیس کافیه یا باید کار های دیگه هم انجام شه ؟
حالا اگر ما بخوایم مثلا 1000 رکورد در دیتابیسمون به صورت پیش فرض وجود داشته باشه باید چیکار کنیم ؟

khista
دوشنبه 04 شهریور 1392, 14:52 عصر
با سلام خدمت همه عزیزان
منم یه پروژه دارم کار میکنم همین مشکل دارم
لطفا راهنمایی کنید

ho3ein.3ven
دوشنبه 04 شهریور 1392, 23:37 عصر
واقعا کسی تا حالا چنین مشکلی نداشته ؟ اگر راهنمایی کنین ممنون میشم.

csharpprogramer88
دوشنبه 04 شهریور 1392, 23:39 عصر
من نمیدونم چرا به EF توجه نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ho3ein.3ven
دوشنبه 04 شهریور 1392, 23:40 عصر
من نمیدونم چرا به EF توجه نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
شاید واقعا کسی بلد نیست :متفکر:

sh.eng
سه شنبه 05 شهریور 1392, 01:12 صبح
سلام دوست من. کار خاصی نیاز نیست انجام بدید... همان کارهایی که بدون EF انجام میدادید را الان هم انجام بدید.

khista
سه شنبه 05 شهریور 1392, 07:27 صبح
خوب یه توضیح بدید بد نیس:لبخند:

ho3ein.3ven
سه شنبه 05 شهریور 1392, 10:44 صبح
سلام دوست من. کار خاصی نیاز نیست انجام بدید... همان کارهایی که بدون EF انجام میدادید را الان هم انجام بدید.

تشکر از پاسختون . دوست عزیز بنده روش های دیگه مثل ado یا linq رو کار نکردم . فقط Ef رو کار کردم . اگر ممکنه یکم توضیح بدین.

sh.eng
سه شنبه 05 شهریور 1392, 11:08 صبح
خب چه توضیحی بدم، وقتی شما از EF در پروژتون استفاده می کنید ویژوال بصورت خودکار رفرنس های لازم را به پروژتون اضافه میکنه و شما اصلا نیاز نیست کاری کنید. (نیاز نیست dll یا... را به پروژتون اضافه کنید).
نمی دانم در پروژه خود از چه ابزاری استفاده کردید ولی فرض میکنم یک پروژه ی ساده است و از ابزار اضافه ی خاصی استفاده نکردید و دارید با sql ارتباط برقرار میکنید. خب پس نیاز های پروژه شما میشود:
- فایل اجرایی پروژه (موجود در دیباگ)
- نسخه sql server که استفاده کردید
- نسخه dot net framework که استفاده کردید

ho3ein.3ven
سه شنبه 05 شهریور 1392, 11:32 صبح
خب چه توضیحی بدم، وقتی شما از EF در پروژتون استفاده می کنید ویژوال بصورت خودکار رفرنس های لازم را به پروژتون اضافه میکنه و شما اصلا نیاز نیست کاری کنید. (نیاز نیست dll یا... را به پروژتون اضافه کنید).
نمی دانم در پروژه خود از چه ابزاری استفاده کردید ولی فرض میکنم یک پروژه ی ساده است و از ابزار اضافه ی خاصی استفاده نکردید و دارید با sql ارتباط برقرار میکنید. خب پس نیاز های پروژه شما میشود:
- فایل اجرایی پروژه (موجود در دیباگ)
- نسخه sql server که استفاده کردید
- نسخه dot net framework که استفاده کردید

ممنون از شما . منظور من این است که وقتی برنامه رو به سیستم دیگه می برم چه کار هایی باید انجام بدم که برنامه بتونه با دیتابیس ارتباط داشته باشه ؟ آیا فقط دیتابیس رو ایجاد کنم کفایت می کنه ؟

sh.eng
سه شنبه 05 شهریور 1392, 11:54 صبح
خب دوست من، برای این مورد هم کمی جستجو کنید موارد زیادی پیدا میکنید. حالا من به چندتاش اشاره میکنم اگر با نحوه پیاده سازیشون آشنایی ندارید جستجو کنید مطالب زیادی وجود داره

- دیتابیس را از طریق کدنویسی ایجاد کنید (در این حالت نیاز به اضافه کردن فایل دیتابیس نیست)
- فایل دیتابیس را با فایل اجرایی ارائه بدید (نصبی کنید و...) و با استفاده از کدنویسی کارهای اتچ کردن را انجام بدید
- فایل دیتابیس را با فایل اجرایی ارائه بدید و کار اتچ را بصورت دستی شما یا مشتری انجام بدید.

انتخاب هر کدام با توجه به شرایطه، ولی در کل به نظر من روش اول اصولی تر است.

rezaei_y
سه شنبه 05 شهریور 1392, 12:03 عصر
اگر قبلا با ado.net کار کردید و فایل نصب ایجاد کردید و با موفقیت تونستید استفاده کنید برای ساخت setupهمون کارها رو انجام بدبین تفاوتی نداره

ho3ein.3ven
سه شنبه 05 شهریور 1392, 13:19 عصر
خب دوست من، برای این مورد هم کمی جستجو کنید موارد زیادی پیدا میکنید. حالا من به چندتاش اشاره میکنم اگر با نحوه پیاده سازیشون آشنایی ندارید جستجو کنید مطالب زیادی وجود داره

- دیتابیس را از طریق کدنویسی ایجاد کنید (در این حالت نیاز به اضافه کردن فایل دیتابیس نیست)
- فایل دیتابیس را با فایل اجرایی ارائه بدید (نصبی کنید و...) و با استفاده از کدنویسی کارهای اتچ کردن را انجام بدید
- فایل دیتابیس را با فایل اجرایی ارائه بدید و کار اتچ را بصورت دستی شما یا مشتری انجام بدید.

انتخاب هر کدام با توجه به شرایطه، ولی در کل به نظر من روش اول اصولی تر است.

بازم ممنون ازتون . ولی چیزی پیدا نکردم در مورد این 3 روش . اگر ممکنه خودتون یه توضیح بدین.

ho3ein.3ven
سه شنبه 05 شهریور 1392, 20:27 عصر
خواهشا اگه کسی بلده راهنمایی کنه ؟ خیلی گیره این هستم .

sh.eng
سه شنبه 05 شهریور 1392, 21:24 عصر
خواهشا اگه کسی بلده راهنمایی کنه ؟ خیلی گیره این هستم .

دوست عزیز شما نحوه ساخت setup را سرچ کنید آموزش های زیادی پیدا میکنی:
http://barnamenevis.org/showthread.php?377683-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%81%D8%A7%DB%8C%D9%84-%D9%86%D8%B5%D8%A8%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%A7%D8%B1%D8%A7%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3
http://barnamenevis.org/showthread.php?395877-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%A8%D8%A7%D9%86%DA%A9-sql-%D8%AF%D8%B1-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%A7%D8%AA%DA%86-%DA%A9%D8%B1%D8%AF%D9%86
و...
خیلی زیاد پیدا میکنید.

ho3ein.3ven
چهارشنبه 06 شهریور 1392, 14:40 عصر
ممنون از توجهتون . هیچ کدوم از تاپیک ها به صورت کامل این موضوع رو آموزش ندادن و یا به جوابی نرسیدن . مثلا خیلی از تاپیک ها گفتن که کانکشن استرینگ رو به این صورت تغییر دهین در حالی که مشخص نیست کانکشن استرینگ کجاست .

khista
چهارشنبه 06 شهریور 1392, 17:30 عصر
:ناراحت::افسرده::افسرده::متف ر:

ho3ein.3ven
پنج شنبه 07 شهریور 1392, 00:21 صبح
دوستان من پروژم تموم شده فقط تو این قسمتش گیر کردم خواهشا اگه کسی می تونه به من کمک کنه.

sh.eng
پنج شنبه 07 شهریور 1392, 03:48 صبح
ممنون از توجهتون . هیچ کدوم از تاپیک ها به صورت کامل این موضوع رو آموزش ندادن و یا به جوابی نرسیدن . مثلا خیلی از تاپیک ها گفتن که کانکشن استرینگ رو به این صورت تغییر دهین در حالی که مشخص نیست کانکشن استرینگ کجاست .

دوست من اگر کمی جستجو کنید مطمئنا سریعتر به جواب میرسید.
در مورد کانکشن استرینگٰ، شما آن را میتونید در فایل App.Config پیدا کنید.

ho3ein.3ven
پنج شنبه 07 شهریور 1392, 15:03 عصر
ممنون به خاطر توجهتون . ولی متاسفانه تو این سایت هیچ مطلب بدرد بخوری در مورد این قضیه وجود نداره . سورس زیر رو از یک سایت خارجی گرفتم :
public static string DB_NAME = "mydb"; //you don't need an extension here, this is the db name not a filename
public static string DB_PATH = "C:\\data\\";

public bool CreateDatabase()
{
bool stat=true;
string sqlCreateDBQuery;
SqlConnection myConn = new SqlConnection("Server=localhost\\SQLEXPRESS;Integrated security=SSPI;database=master;");

sqlCreateDBQuery = " CREATE DATABASE "
+ DB_NAME
+ " ON PRIMARY "
+ " (NAME = " + DB_NAME + "_Data, "
+ " FILENAME = '" + DB_PATH + DB_NAME + ".mdf', "
+ " SIZE = 2MB,"
+ " FILEGROWTH = 10%) "
+ " LOG ON (NAME =" + DB_NAME + "_Log, "
+ " FILENAME = '" + DB_PATH + DB_NAME + "Log.ldf', "
+ " SIZE = 1MB, "
+ " FILEGROWTH = 10%) ";

SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, myConn);
try
{
myConn.Open();
myCommand.ExecuteNonQuery();
}
catch (System.Exception)
{
stat=false;
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
myConn.Dispose();
}
return stat;
}

http://stackoverflow.com/questions/9321206/code-to-create-connect-to-a-sql-server-database-whats-wrong-with-it

اگه لطف کنی طریقه کار باهاش رو برام توضیح بدی ممنون میشم

mamadcity
پنج شنبه 07 شهریور 1392, 15:11 عصر
دقت داشته باش که کانکشن استرینگ EF رو تو مدلی که ساختی به Local تغییر بدی بعد تو سیستم مقصد به مشکلی بر نمی خوری

ho3ein.3ven
پنج شنبه 07 شهریور 1392, 15:36 عصر
دقت داشته باش که کانکشن استرینگ EF رو تو مدلی که ساختی به Local تغییر بدی بعد تو سیستم مقصد به مشکلی بر نمی خوری
ممنون از شما . ولی من اصلا تو این زمینه سر در نمیارم اگه ممکنه واضح تر بگین.

ho3ein.3ven
پنج شنبه 07 شهریور 1392, 22:44 عصر
دوستان کسی نمی تونه راهنمایی کنه ؟ خیلی لنگ این هستم.

mahdi87_gh
جمعه 08 شهریور 1392, 18:24 عصر
دوست عزیز شما اصلا مطمئنم که سرچ نمی کنید!!!

وقتی که sql روی یک سیستمی نصب می شه، بطور پیش فرض نام بهش داده نمیشه. بنابراین شما برای اتصال به سرور sql باید به سرور local ( یعنی سروری که روی همین سیستمی که برنامه روش نصبه داره کار می کنه) باید وصل بشید. برای این کار روش اصولی این هستش که در کانکشن استرینگ بجای نام سرور از نقطه (.) یا کلمه local استفاده بشه. البته اگه نام کامپیوتر رو هم قرار بدید بهمین معناست. ولی باید برنامه روی هر سیستمی که نصب میشه شما در کانکشن استرینگ نام سرور رو بنام سیستم فعلی تغییر بدی. برای اینکه به این دردسر مبتلا نشی همانطور که گفتم از . بجای نام سرور استفاده کنید. اگه نسخه express رو استفاده میکنید بنابراین باید بنویسید server=./sqlexpress

Direlap
جمعه 08 شهریور 1392, 19:20 عصر
از کدوم ورژن sql استفاده میکنید ؟

برای اینکه توی سیستم مقصد برنامتون اجرا بشه باید sql روی اون نصب شده باشه و به همراه دات نتی که ازش استفاده میکنید.

این فایل ها هم باید کنار فایل اجرایی شما باشن :

دیتابیستون(بستگی به کانکشن شما داره که به طور پیشفرض طوریه که حتما باید این گزینه رو رعایت کنید)
یه dll به نام EntityFramework.dll
فایل کانفیگ همنام فایل اجراییتان و با پسوند .exe.config

اگه تغییر خاصی ایجاد نکرده باشید تمام

ho3ein.3ven
شنبه 09 شهریور 1392, 00:01 صبح
با تشکر از شما . من از SQL Server 2008 Express استفاده می کنم .
برای برقراری ارتباط با دیتابیس هم عبارت ./sqlexpress می نویسم .
حالا فرض رو بر این می گیریم که دات نت و اس کیو ال سرور هم نصب شد . بعد کناره برنامه باید فایل های دیتابیس با پسوند mdf و ldf قرار داده بشه ؟ این فایل دی ال ال رو از کجا گیر بیارم ؟ یعنی همین 2 مورد کنار برنامه باشه بدون مشکل اجرا میشه ؟

Direlap
شنبه 09 شهریور 1392, 00:40 صبح
با تشکر از شما . من از SQL Server 2008 Express استفاده می کنم .
برای برقراری ارتباط با دیتابیس هم عبارت ./sqlexpress می نویسم .
حالا فرض رو بر این می گیریم که دات نت و اس کیو ال سرور هم نصب شد . بعد کناره برنامه باید فایل های دیتابیس با پسوند mdf و ldf قرار داده بشه ؟ این فایل دی ال ال رو از کجا گیر بیارم ؟ یعنی همین 2 مورد کنار برنامه باشه بدون مشکل اجرا میشه ؟

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

فایل دیتابیس با پسوند mdf کافیه و حتما مجبور نیستید از فایل با پسوند ldf هم استفاده کنید.(ldf اختیاریه)

فایل dll کنار برنامتون ایجاد شده و نیازی نیست از جایی تهیش کنید.

(دارم شک میکنم حتما دارید از ef استفاده میکنید ؟)

ho3ein.3ven
شنبه 09 شهریور 1392, 00:48 صبح
مگه از ef استفاده نمیکنید ؟ در اینصورت نیازی به تعریف کانکشن استرینگ ندارید مگر اینکه خودتان دستی عوضش کنید. با توجه به مطالب بالا که گفتید نمیتونید به محل کانکشن استرینگ دستیابی داشه باشید چگونه پس عوضش میکنید ؟

فایل دیتابیس با پسوند mdf کافیه و حتما مجبور نیستید از فایل با پسوند ldf هم استفاده کنید.(ldf اختیاریه)

فایل dll کنار برنامتون ایجاد شده و نیازی نیست از جایی تهیش کنید.

(دارم شک میکنم حتما دارید از ef استفاده میکنید ؟)

از EF استفاده می کنم ولی تازه شروع کردم هنوز زیاد سر در نمیارم .
منظورم آدرس سرور بود نه کانکشن استرینگ .
فایل دی ال ال که گفتین هم کنار برنامه ساخته نشده .
بازم ممنون از شما.

Direlap
شنبه 09 شهریور 1392, 01:31 صبح
از EF استفاده می کنم ولی تازه شروع کردم هنوز زیاد سر در نمیارم .
منظورم آدرس سرور بود نه کانکشن استرینگ .
فایل دی ال ال که گفتین هم کنار برنامه ساخته نشده .
بازم ممنون از شما.

خواهش میکنم وظیفس.
من از ef 5 استفاد میکنم و همیشه این فایل دی ال ال کنار برنامم تولید میشه. تو این مورد نمیدونم چرا توی برنامه شما نیست.
من خودمم از نسخه اکسپرس sql استفاده میکنم و با ایجاد بانک خودش کنار برنامه اضافه میشه و کانکشنش ساخته میشه بدون اینکه به چیزی دست بزنم.
همه جا هم برنامه هام رو بردم و با اون ملاحظاتی که گفتم بدون مشکل ایجاد شدن.

شما اگه میتونی سورستو اینجا قرار بده و الا یک پروژه ساده با بانک ایجاد کن و بزار اینجا ببینیم شاید تونستیم کمکت کنیم.

ho3ein.3ven
شنبه 09 شهریور 1392, 11:34 صبح
شما از چه vs ای استفاده میکنین ؟ من از 2010 استفاده می کنم .
این پروژه :
109973

Direlap
شنبه 09 شهریور 1392, 15:38 عصر
شما از چه vs ای استفاده میکنین ؟ من از 2010 استفاده می کنم .
این پروژه :
109973

من از ویژوال 2012 استفاده میکنم که پیشفرض روش ef 5 نصبه.

پروژتونو دانلود کردم ولی دیتابیسی ندیدم. کانکشن استرینگ شما اینه :



connectionString="metadata=res://*/Context.csdl|res://*/Context.ssdl|res://*/Context.msl;provider=System.Data.SqlClient;provide r connection string="Data Source=.\sqlexpress;Initial Catalog=store;Integrated Security=True;MultipleActiveResultSets=True""

و طوری تنظیم نشده که وقتی دیتابیستون کنار پروژه باشه بهش بتونه وصل بشه.
برای این کار میتونید از اول از گزینه add->new item دیتابیستون رو بسازید و سپس از روی اون مدلتون رو ایجاد کنید. در این صورت کانکشن استرینگ شما به صورتی که گفتم ساخته میشه و نیازی به کار اضافه نیست. بعدش میتونید پروژتونو اینجا قرار بدید تا ما هم تست کنیم ببینیم توی سیستم ما هم به خوبی اجرا میشه یانه و یا میتونید توی vmware تست بگیرید.

اینم از پروژتون که من تو سیستم خودم با ef 5 ادیتش کردم.

http://uploadtak.com/viewer.php?file=t5891_store.zip

ho3ein.3ven
شنبه 09 شهریور 1392, 16:34 عصر
این پروژه ای که شما قرار دادین رو چک کردم بازم مشکل داره :
109988

Direlap
شنبه 09 شهریور 1392, 17:15 عصر
اینو رو سیستم خودتون دارین تست میکنید یا یه سیستم دیگس ؟
فکر کنم از خطای داده شده از نسخه sql باشه چون من با sql 2012 دیتابیس رو ساختم و بهتون دادم.(این گزینه ویندوز xp رو ساپورت نمیکنه)
instance نسخه sql شما روی پیشفرضه یا تغییرش دادین ؟
اونایی که گفتم رو انجام دادین ؟ (پست قبلیم)

ho3ein.3ven
شنبه 09 شهریور 1392, 17:43 عصر
رو سیستم خودم تست می کنم .
من می خوام که این برنامه رو ویندوز اکس پی هم اجرا بشه .
instance هم نمی دونم چیه . ولی هر چی که هست تغییرش ندادم.
تو گزینه add->new item چطوری دیتابیس رو بسازم ؟ متوجه نشدم.
واقعا شرمنده که اینقدر اذیتتون کردم.

Direlap
شنبه 09 شهریور 1392, 17:58 عصر
رو سیستم خودم تست می کنم .
من می خوام که این برنامه رو ویندوز اکس پی هم اجرا بشه .
instance هم نمی دونم چیه . ولی هر چی که هست تغییرش ندادم.
تو گزینه add->new item چطوری دیتابیس رو بسازم ؟ متوجه نشدم.
واقعا شرمنده که اینقدر اذیتتون کردم.

اگه بخواهید برنامتون در ویندوز ایکس پی هم اجرا بشه پس نمیتونید از sql 2012 و دات نت 4.5 استفاده کنید.
چون شما از sql express استفاده میکنید بهتره دیتابیستون کنار برنامتون باشه تا نیازی به اتچ کردن و کارای دیگه نباشه. برای اینکار به این شکل عمل کنید :
http://msdn.microsoft.com/en-us/library/vstudio/ms233763(v=vs.100).aspx
راحت باشین و سوالتونو بپرسین هیچ اذیتی نیست وظیفس.

ho3ein.3ven
شنبه 09 شهریور 1392, 20:41 عصر
ببخشید وقتی دات نت 4.5 و اس کیو ال 2012 رو ویندوز اکس پی اجرا نمیشه پس به چه دردی می خوره ؟ چون هنوز خیلیا ویندوز اکس پی استفاده می کنن ؟
خب الان من دیتابیس رو ایجاد کردم . بعدش باید چیکار کنم ؟

Direlap
شنبه 09 شهریور 1392, 21:04 عصر
ببخشید وقتی دات نت 4.5 و اس کیو ال 2012 رو ویندوز اکس پی اجرا نمیشه پس به چه دردی می خوره ؟ چون هنوز خیلیا ویندوز اکس پی استفاده می کنن ؟
خب الان من دیتابیس رو ایجاد کردم . بعدش باید چیکار کنم ؟

ماکزیموم دات نت 4 و sql 2008 r2 رو میتونید تو xp اجرا کنید

من خودم خیلی وقته دیگه پشتیبانی از xp رو قطع کردم و واسش برنامه نمینویسم.

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

ho3ein.3ven
شنبه 09 شهریور 1392, 22:06 عصر
من هنگام جنریت کردن مدل همین دیتابیسی رو که ایجاد کردم انتخاب می کنم . بعد ctrl + shift+e رو می زنم که با اس کیو ال ارتباط داشته باشه ولی ارور زیر رو میده :
Msg 911, Level 16, State 1, Line 1
Database 'Database2' does not exist. Make sure that the name is entered correctly.

Direlap
شنبه 09 شهریور 1392, 22:53 عصر
زدن این کلیدهایی که گفتید نیاز نیست و نیاز نیست ارتباط برقرار کنید. خود ef ارتباطات رو مدیریت میکنه.
ارورشم مربوط به پیدا نکردن دیتابیسه.
به غیر از این ارور که گفتید آیا تونستید برنامتون رو تکمیل کنید ؟ تستش هم کردید ؟

ho3ein.3ven
شنبه 09 شهریور 1392, 22:59 عصر
بله . ولی قسمت هایی که مربوط به دیتابیس هست کار نمی کنه و ارور میده .

Direlap
شنبه 09 شهریور 1392, 23:03 عصر
الان وقتشو دارم اگه بخواهید teamviewer رو دانلود کنید و یوزر پس رو بهم پیام شخصی کنید تا یه تستی بکنم برنامه رو.

ho3ein.3ven
شنبه 09 شهریور 1392, 23:46 عصر
فرستادم یوزرنیم و پسورد رو .

ho3ein.3ven
یک شنبه 10 شهریور 1392, 01:01 صبح
ببخشید بازم یه مشکل پیش اومد .
اطلاعات دیتابیس رو به درستی نشون میده ولی برای اضافه کردن رکورد جدید ارور میده . کدی که برای اضافه کردن رکورد جدید نوشتم :
tblName t = new tblName();
t.name = textBox1.Text;
edmx.AddTotblNames(t);
edmx.SaveChanges();

Direlap
یک شنبه 10 شهریور 1392, 12:02 عصر
کدی که نوشتید درسته و این به این دلیله که تغییرات تو دیتابیس در حالتی که میخواهیم برنامه رو debug کنیم ذخیره نمیشه.
تو برنامه ای که باهم نوشتیم دیتاگرید فقط هنگام لود فرم به روز میشه و وقتی شما اطلاعاتی رو اضافه میکنید و دوباره برنامه رو اجرا میکنید نشون داده نمیشه.
این مسئله طبیعیه.
اگه میخواهید ببینید که آیا حتما این کدتون درست کار کرده و اطلاعات اضافه شده بعد از کدی که نوشتید همون کدهای لود فرمتون رو دوباره بنویسید تا اطلاعات درج شده هم در دیتاگرید نمایش پیدا کنه.

ho3ein.3ven
یک شنبه 10 شهریور 1392, 16:52 عصر
خب این چرا اینجوری کار می کنه ؟ اگه اینجوری باشه که نمیشه باهاش کار کرد . این کاری که شما گفتی رو انجام دادم رکورد اول رو ثبت می کنه ولی رکورد های بعدی رو ثبت نمی کنه و ارور میده.

Direlap
یک شنبه 10 شهریور 1392, 21:50 عصر
توی قسمت دیباگ کردن ویژوال این اتفاق میفته و اگه مستقیم برنامه ایجاد شده رو استفاده کنید مشکلی نخواهید داشت.

ho3ein.3ven
یک شنبه 10 شهریور 1392, 23:05 عصر
خود برنامه exe هم امتحان کردم ارور زیر رو میداد :
110049

اگه این روش بخواد این مشکل رو داشته باشه زیاد خوب نیست . آیا روش دیگه ای هست ؟

Direlap
یک شنبه 10 شهریور 1392, 23:32 عصر
با چه کدی این ارور رو دریافت میکنید ؟

ho3ein.3ven
یک شنبه 10 شهریور 1392, 23:52 عصر
private void button1_Click(object sender, EventArgs e)
{
tblName t = new tblName();
t.name = textBox1.Text;
edmx.AddTotblNames(t);
edmx.SaveChanges();
var query = from p in edmx.tblNames
select p;
dataGridView1.DataSource = query;
}

Direlap
دوشنبه 11 شهریور 1392, 14:53 عصر
کدتون مشکلی نداره و درسته میتونید دو کار زیر رو انجام بدید:
کدتون رو به این شکل تغییر بدید و امتحان کنید :


var query = (from p in edmx.tblNames
select p).ToList();


و یا با این روشی که اینجا گفتم کار کنید :
http://barnamenevis.org/showthread.php?417166-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B1%D9%88%D8%B2-%D8%A8%D8%A7-%DB%8C%DA%A9-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%AF%D8%B1-%D8%AC%D8%AF%D9%88%D9%84-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3(EF)&p=1865669&viewfull=1#post1865669

ho3ein.3ven
دوشنبه 11 شهریور 1392, 17:15 عصر
این روش هم سرعتش پایینه و هم اینکه داده ها رو اصلا به db اضافه نمی کنه . فقط موقعی که برنامه اجراست نشون میده که رکورد اضافه شده همین که برنامه بسته میشه دوباره باز میشه دیگه رکورد رو نشون نمیده.
شما روش دیگه ای به ذهنتون نمی رسه ؟ چون مشکلات این روش خیلی زیاده .

Direlap
دوشنبه 11 شهریور 1392, 19:12 عصر
کدی که نوشتید درسته و این به این دلیله که تغییرات تو دیتابیس در حالتی که میخواهیم برنامه رو debug کنیم ذخیره نمیشه.

اینی که گفتم مشکل نیست و یه مزیته که موقع اجرای و تست برنامه اطلاعات اصلی دیتابیس از بین نره. هنگام اجرای برنامه اصلی این مورد وجود نداره و نگران نباشید.
منظورتون کدوم روشه ؟
یا باید از ado استفاده کنید و یا از orm که بهترینش همین ef هست.
درسته سرعت اجرای ado بیشتره ولی میشه با تکنیک هایی سرعت ef رو هم بالا برد.
به نظرم شما باید تمرینات زیادی با ef انجام بدید تا به همه قسمت هاش آشنا بشید. چون فقط insert و update و delete نیست.
و یه پیشنهاد دیگه به شما: حتما یه چند تا منبع دیگه هم از آموزش ef مطالعه بکنید تا دانشتون در این باره اضافه بشه.(از هر نوع منبع که میتونید استفاده کنید)

ho3ein.3ven
دوشنبه 11 شهریور 1392, 20:38 عصر
ببینید من مشکلی با EF ندارم . تازه به نظرم خیلیم سرعتش خوبه و کد نویسیش هم راحته . وقتی سرعتش اومد پایین که از دیتابیس لوکال استفاده کردیم . منظور من از روش دیگه این نبود که یه روش دیگه برای ارتباط با دیتابیس استفاده کنیم بلکه منظور من این بود که از یک روش دیگه برای portable کردن برنامه ای که با EF نوشته شده استفاده کنیم.

khista
شنبه 16 شهریور 1392, 09:48 صبح
ضروری لطف کنید راهنمایی:ناراحت::گیج: