PDA

View Full Version : خطای sql در شبکه



arsalansalar
سه شنبه 05 اردیبهشت 1391, 20:17 عصر
با سلام
زمانی که برنامه رو به صورت local اجرا می کنم.به صورت صحیح کار می کند.اما زمانی که برنامه در شبکه می رود خطای زیر را میدهد:86237

GGRRSS_2
سه شنبه 05 اردیبهشت 1391, 22:32 عصر
سلام
Windows Firewall رو خاموش كنيد

فرید نجفلو
سه شنبه 05 اردیبهشت 1391, 23:05 عصر
دوست عزیز شما از دستور Attached Database در داخل کانکشن استرینگ استفاده کردید که در روی همون سیستم مشکلی نداره
ولی در حالت شبکه باید این رو مد نظر داشته باشید که سیستم مقابل به این فایل دیتابیس دسترسی نداره
یا شما باید دیتابیس رو به اون سیستم انتقال بدید یا اینکه فایل دیتابیس رو داخل شبکه به اشتراک بذارید
البته در مورد راه حل دوم کامل مطمئن نیستم و کار صحیحی هم نیست

swallow.pa
چهارشنبه 06 اردیبهشت 1391, 10:28 صبح
توی گوگل جستجو کن connectionstring یک سایت هست به همین عنوان که کانکشن استرینگهای مربوطه رو توضیح داده اون کانکشن استرینگی که مربوط به شبکه است رو استفاده هست بنویس حل میشه

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 10:40 صبح
شما اون connectionstring که مربوط به شبکه است و ندارید؟

swallow.pa
چهارشنبه 06 اردیبهشت 1391, 12:15 عصر
این ساده ترین راهه


Data Source=192.168.0.1;Initial Catalog=MyDataBase;Integrated Security=True

این هم یک رفرنس
http://www.connectionstrings.com/sql-server-2008

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 15:53 عصر
من connection و به صورت زیر نوشتم.اما چون به شبکه دسترسی ندارم.می خواستم ببینم درست هست یا نه؟

con = New SqlConnection("Data Source=192.168.0.1;Initial Catalog=" & Application.StartupPath() & "\Omid1_Data.MDF;Integrated Security=True")

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 17:11 عصر
من تقریبا خطا رو پیدا کردم وای نمی دونم چی جوری حلش کنم.
زمانی که به SQL Server Configuration Manager می روم و بر روی نسخه sql expres کلیک می کنم.خطای مشاهده شده در عکس را می دهد:

86283

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 17:24 عصر
زمانی هم که لاگین می کنم این خطا را می دهد:

swallow.pa
چهارشنبه 06 اردیبهشت 1391, 19:12 عصر
من connection و به صورت زیر نوشتم.اما چون به شبکه دسترسی ندارم.می خواستم ببینم درست هست یا نه؟

con = New SqlConnection("Data Source=192.168.0.1;Initial Catalog=" & Application.StartupPath() & "\Omid1_Data.MDF;Integrated Security=True")
این کانکشن اشتباهه
چون شما یا کلاینتها باید از طریق سرور به دیتابیس دسترسی داشته باشند نه از طریق Application.StartupPath

swallow.pa
چهارشنبه 06 اردیبهشت 1391, 19:14 عصر
در مورد خطای دوم من هم قبلا این مشکل رو داشتم اما یادم نمی اد چه طوری حلش کردم ولی یک بار سرور ها رو پاک کن و دوباره رجیسترش کن شاید درست بشه

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 20:24 عصر
میشه توصیح بدهید بعد از پاک کردن چه جوری ریجسترش کنم؟

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 20:26 عصر
اسم بانک من omid1 هست.امکانش هست یک connection صحیح با این نام بانک به من بدهید؟ممنون
البته اضافه کنم من از نسخه expres استفاده می کنم

swallow.pa
چهارشنبه 06 اردیبهشت 1391, 20:53 عصر
Dim Cn As New SqlClient.SqlConnection("Data Source=192.168.0.1;Initial Catalog=omid1;Integrated Security=True")

arsalansalar
چهارشنبه 06 اردیبهشت 1391, 21:09 عصر
دوست عزیزم.ممنون از همکاریت.متاسفانه خطای زیر و میده:

Cannot open database requested in login 'omid1'. Login fails. Login failed for user 'IRLP-PC\IRLP'.

فرید نجفلو
پنج شنبه 07 اردیبهشت 1391, 13:56 عصر
دوست عزیز شما باید با یک کاربر SQL معتبر کانکت بشید به صورت پیشفرض یک کاربر به اسم sa وجود داره ولی باید اونو فعال کنید

arsalansalar
پنج شنبه 07 اردیبهشت 1391, 20:46 عصر
دقیقا مشکل من این هست که تو نسخه اکسپرس چی جوری user بسازم

swallow.pa
پنج شنبه 07 اردیبهشت 1391, 20:46 عصر
من هم قبلا این خطا رو داشتم و اشکالم این بود که دو تا Sql server نصب کرده بودم یکی اینستنس بوده ولی الان بایکی کار می کنم که توی نام سرور . می زنم و همون سرور جاری میشه

arsalansalar
جمعه 08 اردیبهشت 1391, 10:59 صبح
من الان با این connection تونستم به سرور وصل شوم.

con = New SqlClient.SqlConnection("Data Source=192.168.0.1\SQLEXPRESS;Initial Catalog=omid1;User ID=sa;Password=1111;")
اما مشکل این شده که کلاینت متصل نمیشه.البته موارد زیر رو انجام دادم:
1-فعال کردن remote
2-فعال کردن پورت 1433
3-فعال کردن sql browse

swallow.pa
جمعه 08 اردیبهشت 1391, 13:35 عصر
فایروال سرور هم باید خاموش باشه

swallow.pa
جمعه 08 اردیبهشت 1391, 14:00 عصر
http://msdn.microsoft.com/en-us/library/ms165718.aspx
http://blogs.msdn.com/b/sqlblog/archive/2009/07/17/how-to-configure-sql-server-to-listen-on-different-ports-on-different-ip-addresses.aspx

arsalansalar
جمعه 08 اردیبهشت 1391, 15:02 عصر
همه این تنظیمات و انجام دادم نشد.
البته بگم ویندوز سرور سون و ویندوز کلاینت ویستا هست

swallow.pa
جمعه 08 اردیبهشت 1391, 15:15 عصر
من جای شما بودم ابتدا دو تا سیستم عامل مثل هم رو با هم مچ می کردم بعدش اینکار ها رو انجام می دادم
این متن رو SIR_asad گفتن
به قسمت Security در زیر Databases مراجعه و در آن جا هم به قسمت Logins مراجعه کنید . این لاگین حق دارند به سرور کانکت نمایند . شما می تونید با راست کلیک برروی لاگین و زدن Add new login یک لاگین جدید به سرور اضافه کنید ... البته همانطور که گفتم این لاگین به سرور است و نه به دیتابیس ...

بعد از تعریف لاگین شما باید یک user تعریف کنید که با استفاده از این لاگین به دیتابیس مثلا X وصل بشه .
برای تعریف کاربر در زیر مجموعه دیتابیس X به قسمت Security و بعد Users ... بر روی Users راست کلیک و Add new user ....
در قسمت login name همان لاگین را که در قسمت قبل درست کردید انتخاب نمایید و در قسمت username نام کاربری را وارد کنید ... شما می تونید هم برای لاگین و هم برای نام کاربری یه اسم بدید که اینطوری راحت میشید .

swallow.pa
جمعه 08 اردیبهشت 1391, 15:19 عصر
http://barnamenevis.org/showthread.php?338774-%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA-sql-server-%D8%AC%D9%87%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%B4%D8%A8%DA%A9%D9%87-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1&p=1494457#post1494457