View Full Version : مشکل اتصال localdb در سیستم ۳۲ بیت
yanni2
چهارشنبه 09 فروردین 1396, 21:42 عصر
با سلام دوستان من يك نرم افزار نوشتم كه با localdb كار مي كند نسخه sql هم 2014 مي باشدمشكل اينجاست كه در ويندوز 64 بيت روي كلاينت نصب مي كنم جواب مي دهد ولي در ويندوز 32 بيت مشكل اتصال به بانك اطلاعاتي مي دهد! حتي يك بانك هم با sql 32bitدرست كردم امتحان كردم ولي جواب نداد ران تایم های ۳۲ و ۶۴ localdb نصب کردم جواب نداد ممنون ميشم كسي راهنماييم كنه در اين رابطه
yanni2
پنج شنبه 24 فروردین 1396, 21:08 عصر
دوستان کسی نیست به این سوال من جواب بده خواهش میکنم بدجور گیر کردم این کانکشن من هست :
SqlConnection conn = new SqlConnection(@"Data Source =(localdb)\MSSQLLocalDB;AttachDbFilename=" + Application.StartupPath + @"\DB\asnaf.mdf;Integrated Security = True");
تو سیستم 32 بیت نصب نمیشه و تو سیستم های 64 بیت هم نصب میشه ولی تو بعضی از 64 بیت ها نمیشه ! نمیدونم چرا این پیغام خطاش هست
144953
بعضی وقتها هم پیغامی میده که توش نوشته Timout 0 و..
دوستان کمک کنید تو 64 بیت درست بود شانس من توسیستم مشتری فقط ایراد میگره و همین پیغام timeout میده
شنبه باید تحویل بدم
مرسی
alireza4474
پنج شنبه 24 فروردین 1396, 23:16 عصر
سلام
اول باید یه instance از طریق command prompt ایجاد کنی
از طریق این لینک میتونی کد های کار با localdb رو ببینی
https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility
بعد از ایجاد instance باید اون رو run کنی
حالا میتونی از اون توی connectionString استفاده کنی
yanni2
جمعه 25 فروردین 1396, 00:24 صبح
مرسی دوست عزیز آخه تو بعضی از سیستم ها بدون این کار می شد !
فقط یه سوال دیگه باید تو سیستم طرف این کارو بکنم و بعدش کانکشنو تغییر بدم ؟
بعد اینکه من sql2014 استفاده میکنم مشکلی نداره؟
میشه یک نمونه مثال بزنی خواهشاً
alireza4474
شنبه 26 فروردین 1396, 00:56 صبح
سلام
ببین دوتا راه داری
میتونی کد های start کردن instance رو توی فولدر startup سیستم مشتری قرار بدی
میتونی با بررسی موقعیت پایگاه داده در هنگاه اجرای برنامه (وجود instance ، متصل بودن db و...) ببینی باید چه کدی رو اجرا کنی که اتصال به پایگاه داده موفقیت امیز باشه
راستش میخوام کامل کامل توضیح ندم که ماهیگیری رو خودت یاد بگیری اما اگه واقعا میخوای ماهی رو بهت بدم، بگو:چشمک:
yanni2
شنبه 26 فروردین 1396, 21:34 عصر
دوست عزیز مرسی
من منظورم این بود که بگو چطور instance تعریف کنم من تو اون سایت رفتم ولی وقتی کدشو میزنم تو cmd عمل نمیکنه
میخوام بدونم دقیقا چطور بنویسم
راستش من چند روز فقط وقت دارم وقت یادگرفتن ماهیگیری ندارم
من قبلا با sqlexpress کار میکردم مشکلی نبود خواستم اینسری از نصب sqlexpress راحت بشه مشتری، بخاطر همین از localdb استفاده کردم
alireza4474
یک شنبه 27 فروردین 1396, 09:51 صبح
:ناراحت::ناراحت:
به خدا کار سختی نیست که ببین هر چی که نیاز داشتی رو برات فرستادم
144968
این هم راهنمای اجرای کد های cmd در C#
http://stackoverflow.com/questions/1255909/execute-cmd-command-from-code
http://stackoverflow.com/questions/1469764/run-command-prompt-commands
چند روز؟
کلش یه ربع طول میکشید
اینم بگم که اینجوری نمیتونی برنامه نویس بشی...!
yanni2
دوشنبه 28 فروردین 1396, 00:27 صبح
دوست عزیز در کل ممنونم
ولی اینا جواب من نبود کلاً منظور منو متوجه نشدی
در ضمن من برنامه نویس هستم 3 تا از برنامه هام تو بازار در حال اجرا هستش فقط دوست داشتم با localdb هم تست کنم
که با این اوصاف که کسی نیست درست راجبش توضیح بده ترجیح میدم با همون express کار کنم
من با localdb کار کردم که شاید مشتری راحت تر باشه ولی دیدم اینجور بازم همون گرفتاری هارو داره
بازم ممنون
alireza4474
دوشنبه 28 فروردین 1396, 11:13 صبح
بزار یکم با جزییات بیشتر توضیح بدم
اول از همه یه سناریو تعریف میکنم
مشتری ما از هیچ چیزی که مربوط به برنامه نویسیه سر در نمیاره پس همه چیز به گردن خودمونه حتی این مشتری عزضه اجرای یه خط کد توی cmd رو هم نداره
حالا میرسیم به سیستمش که احتمال قوی میدیم اصلا هیچ قسمتی از sql روی سیستمش نصب نیست
ما مستقیما به سیستم مشتری دسترسی نداریم و مشتری خودش برنامه رو نصب میکنه
خب حالا نوبت ماست طبق مطالبی که گفتم میفهمیم که اول باید مراحل نصب و اجرای برنامه خیلی کوتاه و اسون باشن
اولین کاری که مشتری باید بکنه نصب برنامه localdb هست
دومین کار نصب خود برنامه هست
بعد از این دو مرحله باید روی localdb یه instance ایجاد کنیم
که چند راه داره
وقتی که پروژه رو اجرا کرد این instance ایجاد شده و start بشه
خب برای انجام اینکار باید کد زیر رو توی formLoad پروژه ات جرا کنی
System.Diagnostics.Process.Start("CMD.exe", "/C sqlLocaldb create <instanceName> -s");
2.میتونیم یه فایل bat توی فولدر startup سیستمش بسازیم که هر بار که سیستمش رو روشن کرد این instance هم راه بیوفته
برای اینکار توی notePat این متن زیر رو بنویسید و با فرمت bat ذخیره اش کنین
sqlLocaldb create <instanceName> -s
بعد از اینکه تونستید یه instance روی سیستم مشتری ایجاد کنید و start کنید وقت اینه که پایگاه داده تون رو انتقال بدید که اون هم چند راه داره
BackUp&Restore
Script
Attatch
اگه توی اینا هم سوال دارید میتونید بپرسید و اینم بگم که چیزی که من خودم ترجیح میدم Script هست
اخرین مرحله مقدار دهی ConnectionString هست که میشه چیزی شبیه به متن زیر باشه
(localdb)\<instanceName>;AttachDbFilename=" + Application.StartupPath + @"\DB\asnaf.mdf;Integrated Security = True
yanni2
چهارشنبه 30 فروردین 1396, 01:11 صبح
مرسی دوست عزیز واقعا لطف کردی ممنونم ازت
فقط یه سوال برام مونده اونم اینکه منظور دقیقت از انتقال به پایگاه داده چیه ؟
alireza4474
چهارشنبه 30 فروردین 1396, 08:52 صبح
فقط یه سوال برام مونده اونم اینکه منظور دقیقت از انتقال به پایگاه داده چیه ؟
وقتی که ما تازه برنامه sqlLocalDB رو روی سیستم کاربر نصب میکنیم خب معلومه که پایگاه داده مارو نداره پس باید یا از طریق کد پایگاه داده رو روی سیستم طرف ایجاد کنیم یا باید از طریق فایل بکاپ یا خود mdf ldf پایگاه داده پایگاه داده ای که برنامه ی ما با اون کار میکنه رو به سیستم مشتری انتقال بدیم
قبلا هم گفتم سه روش داره که من script رو ترجیح میدم
yanni2
چهارشنبه 30 فروردین 1396, 23:03 عصر
آهان من خود mdf ldf و تو یک پوشه قرار میدیم تو برنامه
دوست عزیز خیلی ممنون دستت دردنکنه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.