PDA

View Full Version : اضافه کردن بانک به برنامه نوشته شده توسط سی شارپ



seied javad
یک شنبه 14 اردیبهشت 1393, 18:56 عصر
سلام



من یک برنامه ورود کاربر با سی شارپ نوشتم که شامل صفحه لاگین و پنجره تغییر رمز و بازیابی رمز می باشد.
من یک بانک با sql درست کردم که با سی شارپ اتصالش دادم و با استفاده ازکلاس linq to sql
طراحیش کردم


اما مشکل من اینجاست که :

برنامه داخل کامپیوتر خودم درست و صحیح اجرا میشه ولی وقتی برنامه را کپی میکنم روی یک سیستم دیگه برنامه درست اجرا نمیشه در واقع بانک را شناسایی نمیکنه .

سوال من این است که :
برای اجرا شدن به صورت کامل روی سیستم های دیگر چه کاری باید انجام بدهم؟
آیا باید بانک را ضمیمه برنامه کنم؟(چه طوری)
یا

باید برای برنامه فایل exe درست کرد؟


من میخوام این برنامه را به عنوان یک نرم افزار ارائه کنم (یعنی دارای setup) و وقتی که نصب شد بشه ازش استقاده کرد بدون نصب کردن نرم افزار بانک اطلاعاتی.

ممنون میشم اگر راهنماییم کنید.

behnam-soft
دوشنبه 15 اردیبهشت 1393, 14:45 عصر
هر چند که سوال به شدت تکراری هست اما در رویداد لود فرمت-هر چند تا فرمی که داری- اینو بنویس:

"Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Environment.CurrentDirectory + "\\YourBankName.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

javadaskari
دوشنبه 15 اردیبهشت 1393, 15:22 عصر
هر چند که سوال به شدت تکراری هست اما در رویداد لود فرمت-هر چند تا فرمی که داری- اینو بنویس:

"Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Environment.CurrentDirectory + "\\YourBankName.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";


چرا باید در رویداد لود هر فرمی این دستور را نوشت؟ چرا یکبار در کلاسی این رشته را تعریف نکنیم تا مدیریت آن هم آسانتر باشد و هم تغییرات آن؟

Mojtaba.Shateri
دوشنبه 15 اردیبهشت 1393, 15:38 عصر
سلام



من یک برنامه ورود کاربر با سی شارپ نوشتم که شامل صفحه لاگین و پنجره تغییر رمز و بازیابی رمز می باشد.
من یک بانک با sql درست کردم که با سی شارپ اتصالش دادم و با استفاده ازکلاس linq to sql
طراحیش کردم


اما مشکل من اینجاست که :

برنامه داخل کامپیوتر خودم درست و صحیح اجرا میشه ولی وقتی برنامه را کپی میکنم روی یک سیستم دیگه برنامه درست اجرا نمیشه در واقع بانک را شناسایی نمیکنه .

سوال من این است که :
برای اجرا شدن به صورت کامل روی سیستم های دیگر چه کاری باید انجام بدهم؟
آیا باید بانک را ضمیمه برنامه کنم؟(چه طوری)
یا

باید برای برنامه فایل exe درست کرد؟


من میخوام این برنامه را به عنوان یک نرم افزار ارائه کنم (یعنی دارای setup) و وقتی که نصب شد بشه ازش استقاده کرد بدون نصب کردن نرم افزار بانک اطلاعاتی.

ممنون میشم اگر راهنماییم کنید.

شما میتونی از نرم افزار InstalShield برای ساخت Setup استفاده کنی. دیتابیس هم باید روی یک سرور باشه ، حالا این سرور میتونه خود سیستمی باشه که نرم افزار روی اون نصب شده و یا سیستمی دیگه.
یکی اط علتهای نشناختن دیتابیس اشتباه در ConnectionString شما است . SQL SERVER یه DBMS هستش و بایستی روی کامپیوتری که قراره سرویس بده نصب باشه. حداقل سروریسهای اصلیش نصب و Run باشند.
البته نسخه Compact هم داره و یا کلا میتونید از DBMS های سبک استفاده کنید .

behnam-soft
دوشنبه 15 اردیبهشت 1393, 18:59 عصر
چرا باید در رویداد لود هر فرمی این دستور را نوشت؟ چرا یکبار در کلاسی این رشته را تعریف نکنیم تا مدیریت آن هم آسانتر باشد و هم تغییرات آن؟

چون فکر کردم شما که این سوال رو پرسیدی شاید چندان با این مسائل آشنا نباشی، بهترین کار هم همینه، حتی اگر بتونی بصورت 3 لایه هم برنامه تو پیاده سازی کنی کهدیگه عالیه.

seied javad
چهارشنبه 17 اردیبهشت 1393, 14:17 عصر
چرا باید در رویداد لود هر فرمی این دستور را نوشت؟ چرا یکبار در کلاسی این رشته را تعریف نکنیم تا مدیریت آن هم آسانتر باشد و هم تغییرات آن؟


سلام
چطوری یک کلاس را تعریف کنم؟

seied javad
چهارشنبه 17 اردیبهشت 1393, 14:23 عصر
هر چند که سوال به شدت تکراری هست اما در رویداد لود فرمت-هر چند تا فرمی که داری- اینو بنویس:

"Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Environment.CurrentDirectory + "\\YourBankName.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";


سلام
ممنون که کمک کردی من توی سایت خیلی گشتم ولی مطلب مشابه این پیدا نکردم.
یک سوال برام پیش آمده اگر جواب بدی ممنون میشم
من بانکمو با linq درست کردم و رشته اتصال و این حرفا نداره
نمونه کدم:
118755

حالا بازم باید داخل Form_load
همین قطعه کدی که نوشتید را بنویسم؟
چون من از SQLEXPRESS استفاده نکردم(sql server وlinq)

sajad2852
چهارشنبه 17 اردیبهشت 1393, 16:23 عصر
عزيز بايد بانك رو از sql از حالت الحاق بيرون بياري يا به اصطلاح de atache كني
در sql برروي بانكتت راست كليك كن و در منوي task روي گزينه de atache كليك كن
موفق باشيد

seied javad
چهارشنبه 17 اردیبهشت 1393, 19:16 عصر
عزيز بايد بانك رو از sql از حالت الحاق بيرون بياري يا به اصطلاح de atache كني
در sql برروي بانكتت راست كليك كن و در منوي task روي گزينه de atache كليك كن
موفق باشيد

ممنون بعد از اینکه بانک را de atache کردم چیکار کنم؟

seied javad
جمعه 30 خرداد 1393, 21:13 عصر
هر چند که سوال به شدت تکراری هست اما در رویداد لود فرمت-هر چند تا فرمی که داری- اینو بنویس:

"Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Environment.CurrentDirectory + "\\YourBankName.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";


سلام من از قطعه کد شما استفاده کردم ولی هنوز یک مشکلی دارم:
برنامه اجرا میشه ولی وقتی دارم اطلاعات ثبت میکنم ثبت میشه ولی داخل بانکم ثبت نمیشه یعنی برنامه را یکبار می بندم و دوباره اجراش میکنم دیگه اون اطلاعاتی که ثبت کردم نیست.
میتونی راهنماییم کنی؟
یا برای رشته اتصالم یک قطعه کدی بدی که داخل بقیه سیستم ها هم جواب بده؟