PDA

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



keyvan_s89
جمعه 09 فروردین 1392, 19:55 عصر
سلام من کل انجمن ها رو زیر و رو کردم ولی به جوابم نرسیدم
من یه برنامه نوشتم که بانک اون sql200 هست حالا اگه برنامه رو ببرم تویه یه کامپیوتر دیگه اررور اتصال به بانک میده. با این connection string
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database name.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
من بانک رو با sql طراحی کردم و detach کردم و گذاشتم تویه پوشه debug
ولی بازم ارور میده تویه اون کامپیوتر هم کل sql server 2008 رو نصب کردم ولی بازم نشد
من موندم اصلا بانک رو درست طراحی کردم یا نه ؟ اصلا باید با . وارد sql بشم و table بسازم یا local
مرسی.

omidamiry
جمعه 09 فروردین 1392, 20:22 عصر
کیوان عزیز دیتای شما باید روی سرور نصب بشه

یعنی باید اتچ بشه

keyvan_s89
شنبه 10 فروردین 1392, 11:06 صبح
کیوان عزیز دیتای شما باید روی سرور نصب بشه

یعنی باید اتچ بشه

میشه بیشتر توضیح بدید

aghayex
شنبه 10 فروردین 1392, 11:38 صبح
تاحالا این کارو نکردم اما شما باید برنامه ای که دیتابیست رو مدیریت می کنه مثلا اس کیو ال رو بر روی سرور نصب کنی بعد دیتابیست رو هم در سرور قرار بدی و اونو به برنامه اس کیو ال اتچ می کنی بعد ز اون در برنامت که قرار سمت کلاینت نصب بشه در کانکشن استرینگی که می خوای به دیتابیس وصل بشی به جای عبارت . باید ای پی سرور رو بدی

keyvan_s89
شنبه 10 فروردین 1392, 13:41 عصر
تاحالا این کارو نکردم اما شما باید برنامه ای که دیتابیست رو مدیریت می کنه مثلا اس کیو ال رو بر روی سرور نصب کنی بعد دیتابیست رو هم در سرور قرار بدی و اونو به برنامه اس کیو ال اتچ می کنی بعد ز اون در برنامت که قرار سمت کلاینت نصب بشه در کانکشن استرینگی که می خوای به دیتابیس وصل بشی به جای عبارت . باید ای پی سرور رو بدی
نه نه اشتباه متوجه شدید
من winapp نوشتم میخام برای برنامم ستاپ هم درست کنم

esibarnamenevis
شنبه 10 فروردین 1392, 14:18 عصر
سلام دوست عزیز
بنده هم پروژه با بانک های مختلف نوشتم و تا حالا مشکلی چندانی نداشتم

قبلا یه پروژه با بانک 2000 نوشتم و روی سیستم دیگه که 2008 بود بردم و تست کردم بدون هیچ گونه مشکلی اجرا شد
اینم کانکشن استرینگ
string p = Environment.MachineName;
string connection_string=("data source="+p+";initial catalog=DB_name;integrated security=true");

esibarnamenevis
شنبه 10 فروردین 1392, 14:23 عصر
البته به نظرم اگه کار اتصال بانک به عهده برنامه نویس باشه بهتره
چون به هر دلایلی کاربر شاید نتونه این کار رو انجام بده و...
پس شما هم میتونید یه تابع یا کلاس یا ... رو تعریف کنید که کار اتصال(اتچ ) کردن رو به صورت اتوماتیک انجام بده و....

esibarnamenevis
شنبه 10 فروردین 1392, 14:25 عصر
یه تابع قبلا واسه اتچ کردن اتوماتیک نوشتم داخل سایت هم هستش
یه سرچ کن اگه نتونستی پیدا کنی بگو تا بفرستم براتون

keyvan_s89
شنبه 10 فروردین 1392, 14:36 عصر
یه تابع قبلا واسه اتچ کردن اتوماتیک نوشتم داخل سایت هم هستش
یه سرچ کن اگه نتونستی پیدا کنی بگو تا بفرستم براتون
مرسی دوست عزیز
من مبتدیم. ببین مگه این کانکشن استرینگ که من نوشتم ایرادی داره ؟
این کانکشن استرینگی که شما دادید ارور یوزر میگیره بهش.

esibarnamenevis
شنبه 10 فروردین 1392, 14:40 عصر
سلام این کانکشن که دادم رو تست کردید ؟
چه خطایی میده ؟
متن خطا رو بزارید

از دکمه تشکر استفاده نمایید

keyvan_s89
شنبه 10 فروردین 1392, 14:42 عصر
Cannot open database "Lb_1" requested by the login. The login failed.
Login failed for user 'Keyvan-PC\Keyvan'.
این ارور رو میده

esibarnamenevis
شنبه 10 فروردین 1392, 14:42 عصر
در ضمن دوست عزیز کدهایی که میزارید رو داخل تگ همون زبان بزارید

saeed zarei
شنبه 10 فروردین 1392, 14:45 عصر
ببینید من پاسخ شما رو با توجه به Connection String ای که نوشتید میدم . محل دیتابیس شما باید دقیقا کنار فایل اجرایی برنامتون باشه . دلیلش هم اینه که شما تو Connection بعد از |Directory| نام دیتابیس رو نوشتید و این یعنی دیتابیس شما در کنار فایل اجرایی برنامه هست . نکته بعد اینه که هنگام ساخت Setup (با ویژوال استادیو) باید Sql Express رو هم به فایل نصب اضافه کنی . چون تو Connection نام سرور رو SQLEXPRESS\. گذاشتی .
مورد اخر اینکه اگه میخای برنامه ای که نوشتی با SQLEXPRESS اجرا بشه دیگه نیازی به نصب کردن SQL 2008 نیست.
امیدوارم کمکت کنه

esibarnamenevis
شنبه 10 فروردین 1392, 14:46 عصر
شما دقیقا بانکتون رو با چه ورژنی ساختید؟(ورژن vs و sql تون رو بگید)
روی سیستم خودتون اجرا میشه یا نه؟

keyvan_s89
شنبه 10 فروردین 1392, 14:50 عصر
شما دقیقا بانکتون رو با چه ورژنی ساختید؟(ورژن vs و sql تون رو بگید)
روی سیستم خودتون اجرا میشه یا نه؟
من با sql server 2008 ساختم بانکم هم کنار برنامس تویه کامپیوتر خودم هم اجرا میشه ولی اگه ببرم تویه یه کامپیوتر دیگه نه.!

esibarnamenevis
شنبه 10 فروردین 1392, 14:56 عصر
من یه برنامه نوشتم که بانک اون sql200 هست حالا اگه برنامه رو ببرم تویه یه کامپیوتر دیگه اررور اتصال به بانک میده.

شما دقیقا نگفتید 2008 گفتم شاید 2000 باشه


با این connection string
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database name.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
من بانک رو با sql طراحی کردم و detach کردم و گذاشتم تویه پوشه debug
ولی بازم ارور میده تویه اون کامپیوتر هم کل sql server 2008 رو نصب کردم ولی بازم نشد
من موندم اصلا بانک رو درست طراحی کردم یا نه ؟ اصلا باید با . وارد sql بشم و table بسازم یا local
مرسی.
اگر شما بانک رو با sql server management 2008 طراحی کردید که کانکشن استرینک تون مربوط به sqlexpress هستش و اشتباهه.

keyvan_s89
شنبه 10 فروردین 1392, 14:58 عصر
شما دقیقا نگفتید 2008 گفتم شاید 2000 باشه

اگر شما بانک رو با sql server management 2008 طراحی کردید که کانکشن استرینک تون مربوط به sqlexpress هستش و اشتباهه.
خوب چیکارش باید بکنم ؟

saeed zarei
شنبه 10 فروردین 1392, 15:08 عصر
ببینید برای اجرا شدن برنامه با توجه به Connection ، شما باید SQL EXPRESS رو نصب کنید . حالا اگه میخواید رو سیستم دیگه اون رو با همون SQL 2008 اجرا کنید باید Connection خودتون رو عوض کنید .
راحت ترین کا اینه : توی همون سیستمی که قراره برنامه اجرا بشه یه فایل TXT بسازید و پسوند اون رو به UDL تغییر بدید و اون رو اجرا کنید . از تب اول OLE DB Provider For SQL Server رو انتخاب و از تب دوم هم نام سرور و دیتابیس و گزینه Use Windows NT Integrated Security رو انتخاب کنید و OK رو بزنید و فایل رو دوباره به بهمون پسوند TXT تبدیل کن . حالا فایل رو بازش کن و متن داخل فایل و جلوی کلمه Provider رو به عنوان رشته اتصال قرار بده و برنامتو کامپایل کن و بعد هم اجرا
اگه خطایی داد متن خطا و رشته اتصالتو برام بزار

keyvan_s89
شنبه 10 فروردین 1392, 15:13 عصر
OLE DB Provider For SQL Server کجاست ؟

esibarnamenevis
شنبه 10 فروردین 1392, 15:20 عصر
این لیست تمام کانکشن استرینک های 2008 هست
لینک (http://www.connectionstrings.com/sql-server-2008)

ولی اگه یوزر و پسورد نداری استرینک نرمالش اینه
Server=myServer[Address/Name];Database=myDataBaseName;Trusted_Connection=True;

esibarnamenevis
شنبه 10 فروردین 1392, 15:21 عصر
OLE DB Provider For SQL Server کجاست ؟


منظورشون

microsoft OLE DB Provider For SQL Server
است

keyvan_s89
شنبه 10 فروردین 1392, 15:28 عصر
منظورشون

microsoft OLE DB Provider For SQL Server
است

عزیز دل برادر من مبتدیم اینا چیه ؟:بامزه:

esibarnamenevis
شنبه 10 فروردین 1392, 15:31 عصر
ساده ترین روش همون روش پست قبلی هستش تست کن حتما درست میشه خودم تست کردم درست بوده
نام دیتابیس
نام سرور (یا نام کامپیوتر یا local یا . رو وارد کن)

موفق باشید