PDA

View Full Version : دسترسي به بانك اطلاعات از كلاينت به سرور



farzan_219
سه شنبه 13 مرداد 1388, 15:10 عصر
با سلام خدمت دوستان يه برنام با vb.net نوشتم اما زماني كه ميخوام برنام رو به ديتابيس attach كنم an errror has occured while establishing a connection to the server.when connectiong to sql server2005 this failure may be caused by the fact that under the default settings sqlserver does not allow remote connections.(provider:sql network interfaces,error:25-connection string is not valid) اين پيغام رو ميده هركاري بلد بودم(حتي براي ديتابيسم permmission هم تعيين كردم كه عبارت است از update,insert,delete,select,connectوcreat remote service binding ) وهر اتپيكي كه مرتبط با اين موضوع بود رفتم و كارهايي را كه توش گفته بودن كردم ولي بازهم همين پيغام رو ميده
اگر ميشه لطفا كمكم كنيد:گریه::گریه::گریه::گریه:: ریه::گریه:

mn_zandy63
چهارشنبه 14 مرداد 1388, 00:38 صبح
من دو بار به یه همچین مشکلی برخوردم. و هر دو بار اشکم در اومد تا حدس زدم مشکل از کجاست :لبخندساده:
دیتابیست توی شبکه است یا local؟
یه بارش دیتابیسم توی شبکه بود و مشکل از firewall بود. غیر فعالش کردم تا درست شد.
بار دومش فکر کنم این پیغام رو نمیداد :بامزه: ولش کن٬ الالحساب فایروال کلاینت و سرورت رو هردوتاش رو off کن ببین حل میشه یا نه؟

farzan_219
چهارشنبه 14 مرداد 1388, 20:48 عصر
فايروال رو هم امتحان كردم بازهم نشد ديگه فكر مي كني چيكار بايد بكنم؟:متفکر:

mn_zandy63
پنج شنبه 15 مرداد 1388, 01:14 صبح
یه مشکل دیگه که تو ذهنم نیست همین پیغام رو میده یا نه.
user و pass تعریف کردی دیگه؟ با user لاگین میکنی؟
اگه اینطوره آیا موقع نصب SQL Server نوع security رو روی mixed mode گذاشتی یا نه (یا Windows authentication گذاشتی) ؟
راستی گفتی SQL Server ت چه ورژنی ِ ؟

farzan_219
پنج شنبه 15 مرداد 1388, 09:43 صبح
اين كارهايي رو كه بلا گفته بودي انجام دادم البته قبلا نكرده بودم ولي باز هم همين پيغام رو

ميده :متفکر::متفکر::متفکر:

bashiry
پنج شنبه 15 مرداد 1388, 09:59 صبح
این راه ها رو امتحان کن:
- توی تنظیمات دیتابیس ببین اجازه داری به صورت ریموت به دیتا بیس وصل شی؟
اگه از نسخه 2005 استفاده می کنی بصورت پیش فرض این امکان غیر فعال است
- باید برای دیتا بیست login و یوزر و پسورد بسازی. اگه با ویندوز آتنتیکیت میشه باید عوضش کنی
-اگه دیتابیست روی کامپیوتر دیگه ای است آی پی رو ست کردی؟
-فایروال هم باید چک کنی که فعال نباشه
-نکته مهم همین authentication است که حتما باید Mixedmode باشه
-حالا فرض می کنیم یوزر و پس هم ساخته شده ببین در قسمت loginName چیزی نوشته شده یا نه؟ ممکنه یوزرنیم باشه ولی loginname نداشته باشه

farzan_219
پنج شنبه 15 مرداد 1388, 15:17 عصر
باتوصيه هاي دوستان موفق شدم اما بازهم مشكل.اينكه ديتابيس رو به كلاينت شناسوندم
اما اين پيغام رو مي ده invalid object bame table1 چون جدولي توش نيست:افسرده::افسرده::افسرده:

bashiry
پنج شنبه 15 مرداد 1388, 19:41 عصر
اگه مراحل رو به درستی انجام داده باشی باید بتونی توی Enterprise Manager تمامی جداول و اجزا دیتابیس رو ببینی.
ببین یوزری که ساختی دارای login name است یا نه.

farzan_219
یک شنبه 18 مرداد 1388, 15:34 عصر
اونجا هم همه چيز درسته ولي مگه مي شه كه ديتابيس رو بشناسه ولي جدولش رو نشناسه(كلاينت)ولي تو سرور جدولش رو هم نشون ميده!؟:متعجب::متعجب::متعجب::م تعجب:

mn_zandy63
سه شنبه 20 مرداد 1388, 00:57 صبح
Connection string و دستور Select ت رو بنویس اینجا.

farzan_219
سه شنبه 20 مرداد 1388, 11:09 صبح
Dim con As New SqlConnection("server=F1\SQLEXPRESS;Initial Catalog=xxx;Persist
Security Info=True;User ID=sa;Pssword=feri;Pooling=False



com.CommandText = "SELECT * FROM Table1 WHERE pcode='" + txb_personalcode.Text + "';"

mn_zandy63
سه شنبه 20 مرداد 1388, 13:15 عصر
Dim
con As New SqlConnection("server=F1\SQLEXPRESS;Initial Catalog=xxx;Persist
Security Info=True;User ID=sa;Pssword=feri;Pooling=False

com.CommandText =
"SELECT * FROM Table1 WHERE pcode='" + txb_personalcode.Text + "';"


حالا اصلا جدول Table1 توی دیتابیس XXX وجود داره؟
دوستان pooling=false لازمه؟ اینو هرچند ربط نداره ولی حذفش کن چه کاریه :چشمک:
با کاربر ویندوزت وصل شدی٬ وقتی با همین کاربرت به Management Studio وصل میشی٬ به این دیتابیس دسترسی داری؟

farzan_219
سه شنبه 20 مرداد 1388, 18:47 عصر
حالا اصلا جدول Table1 توی دیتابیس XXX وجود داره؟
دوستان pooling=false لازمه؟ اینو هرچند ربط نداره ولی حذفش کن چه کاریه :چشمک:
با کاربر ویندوزت وصل شدی٬ وقتی با همین کاربرت به Management Studio وصل میشی٬ به این دیتابیس دسترسی داری؟
http://barnamenevis.org/forum/images/statusicon/user_offline.gif http://barnamenevis.org/forum/images/buttons/report.gif (http://barnamenevis.org/forum/report.php?p=778325)

بله جدول Table1 توی دیتابیس XXX وجود داره چون با برنامه اي كه روي سرور دارم Table1
وجود داره و تمام عملياتها روي اون انجام مي گيره
اينManagement Studio كه ميگي كجا هست؟
در ضمن من ديتابيسم رو توي server explorer ميبينم در حالي كه هيچ جدولي توش وجود نداره!؟:متفکر:

mn_zandy63
پنج شنبه 22 مرداد 1388, 20:52 عصر
گفتی همین برنامه رو توی سرور اجرا کردی مشکل نداره؟
Connection String هر دو تا یکیه؟
وقتی توی Server Explorer نشون نمیده یعنی یک مشکلی هست٬ مثلا٬ شاید کاربری که باهاش وصل شدی دسترسی نداره به این دیتابیس.
دوستان با تجربه تر شاید بتونن بیشتر توضیح بدهند.
Management studio همونجا که SQL رو نصب کردی (اگه SQL Express نباشه) حتما نصب شده.

farzan_219
سه شنبه 27 مرداد 1388, 00:30 صبح
گفتی همین برنامه رو توی سرور اجرا کردی مشکل نداره؟
Connection String هر دو تا یکیه؟
وقتی توی Server Explorer نشون نمیده یعنی یک مشکلی هست٬ مثلا٬ شاید کاربری که باهاش وصل شدی دسترسی نداره به این دیتابیس.

نه توي سرور مشكلي نداره.
Connection String ها شون باهم فرق ميكنه.
permission رو از نوع guest تعريف كردم.

mn_zandy63
پنج شنبه 29 مرداد 1388, 19:52 عصر
Connection String ها شون باهم فرق ميكنه.
Connection String ها چه فرقی با هم دارند؟

farzan_219
پنج شنبه 29 مرداد 1388, 20:36 عصر
وقتي روي sever explorer ميرم روي data connection راست كليك ميكنم براي سرور گزينه
add connectionمريم وبراي كلاينت روي گزينه creat new sql server database ميرم اگر بخوام براي كلاينت از data connection استفاده كنم اون پيغامي رو اول تاپيك نوشتم رو ميده

bashiry
پنج شنبه 29 مرداد 1388, 21:11 عصر
ببین به حالت دیزاین تیبل برو و ببین owner درسته یا نه؟
کلیه قسمتها رو چک کن مثلا بخش دیاگرام، ویو و ... ببین مشکلی وجود نداشته باشه