PDA

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



mahan206
یک شنبه 24 خرداد 1394, 13:51 عصر
سلام دوستان من دوزه کل تاینترنت رو گشتم و کلا من میخوام با ویژوال استدیو2013 یه برنامه بنویسم که ویندوز فرمه و میخوام بانکش خودکار با برنامه نصب بشه واقعا دیگه خسته شدم بعد میخوام وقتی کاربر چیزی در بانک درج کرد یا حذف کرد.یه دکمه ابدیت داشته باشه و بانک روی سایت هم ابدیت کنه با اطلاعاتی که تو برنامه جدید وارد شده.
کلا روشش چیه ؟؟؟
من اصلا نمیتونم به بانک برنامه هم متصل شم که در کنار برنامه ساختم.
من sqlهم نصب نکردم و میخوام با sqlویژوال استدیو کار کنم
برای طراحی سایت همیشه راحت بود اما نمیدونم چطور برنامه رو درست کنم که مشکلی با بانک و این کارها که گفتم نداشته باشم.همه کانکشن ها رو هم تست کردم اما نشد.

mahan206
یک شنبه 24 خرداد 1394, 15:11 عصر
ذوستان کسی نمیخواد کمکی کنه واقعا من نیاز دارم برای استارت این پروژه ک برداشتم

RmeXXXXXXXXX
یک شنبه 24 خرداد 1394, 22:57 عصر
پیا سوالاتتو یکی یکی بپرس.
میخواهی فایل دیتابیس درکنار برنامه ات ساخته و استفاده بشه؟
کانکشن استرینگت EF رو بده:
connectionString="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True; AttachDBFilename=|DataDirectory|\GandomDB.mdf"

اگه از وین فرم استفاده می کنی توی متد Main و قبل از هر دستوری اینم اضافه کن.
AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

pbm_soy
دوشنبه 25 خرداد 1394, 01:21 صبح
بله من هم با گقته دوستمون موافقم فقط در کانکشن استرینگ بخش data Source را من اینجوری نمینویسم و بصورت زیر مینویسم (البته اگر روش بالا جواب نداد!)

Data Source=.\sqlexpress
که فکر نمیکنم فرق چندانی بانوشته بالا داشته باشه!
مورد بعدی هم نیازی به نوشتن اون خط در متد Main نداری (پیش فرض datDirectory همون محل فایل exe است)

فقط یک نکته هست اونم اینه که در محیط ویژوال استودیو هربار که برنامه را اجرا میکنی سورس برنامه کامپایل شده و EXE به همراه فایل دیتابیس موجود در فولدر سورس به فولدر bin\debug کپی میشود و داده هایی که ذخیره میکنی در آن دیتابیس ذخیره میشوند نه در دیتابیسی که در فولدر سورس قرار دارد! چون این مشکل قبلا برای من پیش آمد برنامه کار میکرد داده ها ذخیره میشدند ولی وقتی میرفتم دیتابیس را چک کنم دیتای داخل آن نبود چون دیتابیس داخل فولدر سورس را باز میکردم (برای رفع این مشکل محل خروجی برنامه را همان فولدر سورس قرار بدی راحت میشی دیگه دیتابیس خالی و فایلهای کامپایل شده در bin\debug کپی نمیشوند و در فولدر سورس ایجاد میشوند برای اینکار هم مسیر زیر را دنبال کن)
project properties -> Build -> output Path در این محل فقط نقطه بذار به معنی فولدر جاری یا همان فولدر سورس برنامه

نیازی به نصب Sql Server هم نداری چون به همراه ویژوال استودیو Sql Express نصب میشود و به پروژه ات فقط یک دیتابیس Server Base اضافه میکنی ، آنهم در فولدر اصلی (سورس) ایجاد میشود و اگر بروی آن دابل کلیک کنی میتوانی در پنجره Server Explorer مشاهده اش کنی و باهاش کار کنی

mahan206
دوشنبه 25 خرداد 1394, 08:35 صبح
دوستان تشکر
فقط یه سوال داشتم
مشتری من میخواد وقتی افلاینه اطلاعات رو ثبت کنه بعد وقتی متصل شد به اینترنت اطلاعات رو ثبت کنه تو بانک سایتش خودکار و کلا سه کاربرم داره که هر کدوم جداگانه اطلاعات ثبت میکنن.
حالا به نظرتو ایا روشی وجود داره که من این کارو انجام بدم وبه مشکل بر نخورم

asman.abi
دوشنبه 25 خرداد 1394, 17:29 عصر
چرا به صورت سرور کلاینت کار نمی کنی. یعنی پایگاه دادت تو سروری که کاربرا بهش متصل میشن باشه و کاربرا برای ثبت به اینترنت متصل میشن و عملیات رو انجام میدن و همان لحظه در سرور ذخیره میشه.
1.دیگه تو چندتا سیستم پایگاه لازم نیست .
2. حجم نرم افزار پایین میاد.
3. داده های پایگاه با هم هماهنگ هست. مشکل تداخل در اطلاعات به دلیل ناهمزمانی(asynchronous) داده ها در اتصال به اینترنت پیش نمی آد.

pbm_soy
سه شنبه 26 خرداد 1394, 01:20 صبح
شما فقط یک هاست Sql server در اینترنت بگیرید مثل همونائی که برای وب سایتها میدن از همون هم میتوانی استفاده کنی
فقط برخی از شرکتها چون Sql Server و WebServer بروی یک سرور نصب دارند اجازه دسترسی ریموت به Sql Server را نمیدهند (بروی MySql server کاربر خودش میتوانست مستقیم اجازه دسترسی ریموت را فعال کند ولی در MS Sql server نمیدونم میشه یا نه) در هر صورت از شرکت درخواست کنید
اگر امکان گرفتن یک هاست Sql server برای شما باشد و اجازه کار کردن ریموت باشد کار شما خیلی راحت میشود فقط همون برنامه ای که نوشتید را فقط کانکشن استرینگش را عوض میکنید (معمولا شرکت هاست راهنمائی های لازم را خواهد کرد) در واقع یک آدرس آی پی Sql server و نام کاربری و رمز عبور و نام دیتابیس را در آن کانکشن استرینگ باید ست کنید
به این ترتیب برنامه شما مستقیما با یک دیتابیس که در اینترنت قرار دارد کار خواهد کرد
این روش برای شما بهتر است بجائی این که کار تکراری انجام دهید!

pbm_soy
سه شنبه 26 خرداد 1394, 01:27 صبح
برای اینکه برنامه ها مستقیما از یک دیتابیس در اینترنت استفاده کنند و نیاز به دیتابیس در سیستم کاربران نباشد راه دیگه ای هم دارید آنهم استفاده از وب سرویس است

شما فقط یک هاست که دیتابیس Sql server هم داشته باشد میگیرید و بروی آن یک وب سرویس مینویسید و برنامه کلاینت شما برای ذخیره و بازیابی داده ها از متدهای آن وب سرویس استفاده خواهد کرد
بحث وب سرویس هم در همین سایت مفصل مطرح شده است

ولی در این روش شما باید وب سرویس هم باید کار کنید و بلد باشید و هرچند که امانات بیشتری به شما میدهد و دست شما را کمی بازتر میکند ولی ولی روشی که در پست قبلی گفتم راحتتر است همان برنامه ای که فقط در یک سیستم با دیتابیس کار میکرد فقط با تغییر یک کانکشن استرینگ تبدیل به چیزی که میخواهید ،خواهد شد.

mahan206
سه شنبه 26 خرداد 1394, 09:27 صبح
تشکر دوست عزیز من مشکلم این بود که طرف میخواد افلاین اطلاعات وارد کنه بعد که انلاین شد اطلاعات از بانک برنامش بره روی بانک سایتش و این کارو من با ساخت دو بانک انجام دادم یکی بانک برنامه یکی بانک هاست و بعد اطلاعات جدید رو از بانک برنامه وقتی انلاین شد انتغال میدم به بانک روی هاست.
تنها راهی بود که به ذهنم رسید.
تشکر

ebrahim.rayatparvar
سه شنبه 26 خرداد 1394, 11:03 صبح
سلام مهندس
برای ارسال اطلاعات به بانک دیگه بعد از اتصال عموما برای کارای بزرگ از روش Service Broker در SQL استفاده می کنند.