PDA

View Full Version : مشکل با وصل شدن به بانک اطلاعاتی



emad_67
چهارشنبه 11 مهر 1386, 14:29 عصر
سلام
من یه همچین کدی توی کتابم برای متصل شدن به بانک اطلاعاتی وجود داره


SqlConnection objConnection = new SqlConnection("server=localhost;database=pubs;user id=sa;password=");
SqlDataAdapter objDataAdopter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdopter.SelectCommand = new SqlCommand();
objDataAdopter.SelectCommand.Connection = objConnection;
objDataAdopter.SelectCommand.CommandText = "SELECT au_lname,au_fname FROM authors";

objDataAdopter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdopter.Fill(objDataSet, "authors");
objConnection.Close();

grdAuthor.AutoGenerateColumns = true;
grdAuthor.DataSource = objDataSet;
grdAuthor.DataMember = "authors";

وقتی برنامه رو اجرا میکنم نمیتونه به بانک وصل بشه. آیا باید برای اتصال به بانک یک نام کاربری رو توی سرور تعریف کنیم؟ اگر بله چه جوری ؟
به هر حال اگه مشکل دیگه ای هم ممنون میشم کمک کنید.

hdv212
چهارشنبه 11 مهر 1386, 14:42 عصر
آیا پیغامی به شما میده ؟
اصلا دیتابیس pubs در نسخه ی Sql Server شما وجود داره ؟
در صورتی که هیچ پیغام خطایی نمیده و دیتابیس pubs هم در سیستم شما موجوده، واژه ی localhost در جلوی نام server رو به (local) تغییر بدید و دوباره سعی کنید.

hassan razavi
چهارشنبه 11 مهر 1386, 14:50 عصر
توی این Connection String بالا ، از کاربر sa و بدون رمز عبور استفاده شده. اگه که کاربر sa شما رمز داره ، آخر خط کنار Password بنویسید.
در حال کلی باید دید که SQL Sqerver شما چطوری تنظیم شده. روی Windows Account یا SQL Account?
اگر ویندورزه ، یه کاربر در کامپیوتر سرور توسز ویندوز ایجاد کنید و توی رشته اتصال استفاده کنید. اگر SQl بود ، در قسمت Users خود SQL SErver یکی بسازید

emad_67
چهارشنبه 11 مهر 1386, 14:53 عصر
آیا پیغامی به شما میده ؟
اصلا دیتابیس pubs در نسخه ی Sql Server شما وجود داره ؟

این ارور رو میده


An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes
Provider, error: 40 - Could not open a connection to SQL Server

در مورد وجو داشتن بانک pubs من کجا رو باید چک کنم؟



در حال کلی باید دید که SQL Sqerver شما چطوری تنظیم شده. روی Windows Account یا SQL Account?

اگر ویندورزه ، یه کاربر در کامپیوتر سرور توسز ویندوز ایجاد کنید و توی رشته اتصال استفاده کنید. اگر SQl بود ، در قسمت Users خود SQL SErver یکی بسازید



میشه بیشتر توضیح بدید که برای انجام این کارا کجا باید برم .من اطلاع ریادی از بانک ها اطلاعاتی ندارم و تازه شروع کردم

با تشکر

emad_67
چهارشنبه 11 مهر 1386, 20:46 عصر
خواهشا یکی کمک کنه.

hdv212
چهارشنبه 11 مهر 1386, 21:23 عصر
برنامه ی Sql Server Configuration Manager رو از مسیر زیر اجرا کنید :
Start > All Programs > Microsoft Sql Server 2005 > Configuration Tools > Sql Server Configuration Manager
در سمت چپ روی Sql server 2005 network Configuraion کلیک کنید.
در سمت راست روی Protocols for YourSqlServerInctance دابل کلیک کنید.
گزینه های Named Pipes و Tcp/IP رو روی Enable بذارید (پیغام مورد نظر رو ok کنید)
در سمت چپ روی Sql Server 2005 Services کلیک کنید.
در سمت راست روی Sql Server (YourSqServerInctance) کلیک راست کنید و گزینه ی Restart رو بزنید (یا یه بار Stop کنید و دوباره Start کنید)
حالا برنامه تون رو اجرا کنید.
اگه باز همین پیغام خطا رو دیدی، دوباره به مسیر بالا برو و در قسمت Protocols for YourSqlServerInctance روی Named Pipes راست کلیک کن و Properties رو بزن
در قسمت Pipe Name این عبارت رو بنویس :

\\.\pipe\sql\query
حالا یه بار دیگه سرویس Sql رو Restart کن.

emad_67
چهارشنبه 11 مهر 1386, 22:20 عصر
دوست عزیز واقعا ممنون، خیلی خیلی لطف کردی
من وقتی این کدی رو که دادی


\\.\pipe\sql\query (file://\\.\pipe\sql\query)

وارد کردم مشکل اتصال رفع شد. ولی الان از نام کاربری ارور میگیره

Loggin failed for user 'sa'. That user not associated with a trusted SQL Server connection

من چه جوری باید یک user جدید تعریف کنم؟

hassan razavi
چهارشنبه 11 مهر 1386, 22:25 عصر
هنگام نصب به sa رمز عبور دادید؟

emad_67
چهارشنبه 11 مهر 1386, 22:28 عصر
هنگام نصب به sa رمز عبور دادید؟

نه، من اصلا کاربری با این نام هم تعریف نکردم. موقع نصب visual هر چی بوده خودش نصب کرده. من تغییری ندادم

arash501
چهارشنبه 11 مهر 1386, 22:53 عصر
دوست عزیز واقعا ممنون، خیلی خیلی لطف کردی
من وقتی این کدی رو که دادی


\\.\pipe\sql\query (file://\\.\pipe\sql\query)

وارد کردم مشکل اتصال رفع شد. ولی الان از نام کاربری ارور میگیره

Loggin failed for user 'sa'. That user not associated with a trusted SQL Server connection

من چه جوری باید یک user جدید تعریف کنم؟


سلام دوست عزیز . اگر از یک کامپیوتر استفاده می کنی خط اول رو به صورت زیر تغییر بده :

SqlConnection objConnection = new SqlConnection("server=(local);data source=(local);initial catalog=pubs;integrated security=SSPI");


90%
جواب می ده .
من توصیه می کنم از
SQL Server 2000
استفاده کن
!
:لبخندساده::لبخندساده:

emad_67
چهارشنبه 11 مهر 1386, 23:01 عصر
سلام دوست عزیز . اگر از یک کامپیوتر استفاده می کنی خط اول رو به صورت زیر تغییر بده :

SqlConnection objConnection = new SqlConnection("server=(local);data source=(local);initial catalog=pubs;integrated security=SSPI");



90%
جواب می ده .
من توصیه می کنم از
SQL Server 2000
استفاده کن

از شما هم ممنونم
کد شما رو هم امتحان کردم ولی باز هم ارور داد. این دفعه به جای ارور گرفتن ار کاربر sa از خود نام کاربری ویندوز ارور گرفت

jaza_sa
چهارشنبه 11 مهر 1386, 23:15 عصر
میتونی از

"Server = {0}; Database = {1}; UId = {2}; Pwd = {3};"یا از

"Server = {0}; Database = {1}; Integrated Security = True;User Instance=true;"استفاده کنی و درصورتی که دیتابیس Express باشه میتونی از

@"Data Source = .\\SQLEXPRESS;
AttachDbFilename = |DataDirectory|\\{0}.mdf;
Integrated Security = True;
User Instance = True"استفاده کنی.

و اما در مورد Named Pipes فقط کافیه یک Aliases از نوع Named Pipes بسازی:
Protocol = Named Pipes
Server = .
یا
Protocol = Named Pipes
Server = .\SQLEXPRESS
یا
Protocol = Named Pipes
Server = local

emad_67
چهارشنبه 11 مهر 1386, 23:33 عصر
دوست عزیر میشه دقیق تر توضیح بدید. این کد هایی که نوشتین باید در connection string وارد کنم؟ به جای 1 و 2 و3 باید نام اونا رو وارد کنم؟
از این


و اما در مورد Named Pipes فقط کافیه یک Aliases از نوع Named Pipes بسازی:
Protocol = Named Pipes
Server = .
یا
Protocol = Named Pipes
Server = .\SQLEXPRESS
یا
Protocol = Named Pipes
Server = local

هم چیزی سر در نیوردم. من با کارهایی که جناب hdv212 گفتن مشکلم در اتصال به بانک حل شد. الان فقط مشکلم تعریف user هست.

hassan razavi
پنج شنبه 12 مهر 1386, 00:54 صبح
پس از یکی از UserName و Password های ویندوز استفاده کنید. یکی از User های ویندوزتون

hdv212
پنج شنبه 12 مهر 1386, 02:00 صبح
emad_67 عزیز احتمالا یوزر sa غیر فعاله
باید اونو در داخل Sql Management Studio فعالش کنی، در قسمت یوزرها باید اینکار رو بکنی.

jaza_sa
پنج شنبه 12 مهر 1386, 09:48 صبح
این خیلی مسخره است که برای هر کاری که با دیتابیس داریم این سوالا رو مطرح کنیم.
من از موقعی که کد نویسی رو بطور نیمه حرفه ای شروع کردم تا حالا شاید فقط یک بار با این مسایل برخردم و از اون موقع تا حالا دیگه سراغ نوشتن دستور برای وصل شدن به دیتابیس نرفتم.
شما هم اگه میخوایید راحت بشید و این کد ها رو در انبار ذهنتون جاسازی کنید سراغ کلاس نویسی برید یا
کمی دقیق تر سراغ معماری چند لایه (nTier َArchitet)

hassan razavi
پنج شنبه 12 مهر 1386, 13:50 عصر
برای اینکه از صحت user sa مطمئن بشید. وقتی Sql Server Managment Studio را اجرا کردید از گزینه سوم Authentication را به Sql Server تغیر دهید و کاربر و رمز عبور را وارد کنید تا ببینید وصل میشید یا نه؟

emad_67
پنج شنبه 12 مهر 1386, 14:13 عصر
پس از یکی از UserName و Password های ویندوز استفاده کنید. یکی از User های ویندوزتون

من اینجوری نوشتم درسته؟


SqlConnection objconnection = newSqlConnection("server=localhost;database=pubs;user id=emad;password=");

ولی باز هم ارور داد


emad_67 عزیز احتمالا یوزر sa غیر فعاله
باید اونو در داخل Sql Management Studio فعالش کنی، در قسمت یوزرها باید اینکار رو بکنی.



برای اینکه از صحت user sa مطمئن بشید. وقتی Sql Server Managment Studio را اجرا کردید از گزینه سوم Authentication را به Sql Server تغیر دهید و کاربر و رمز عبور را وارد کنید تا ببینید وصل میشید یا نه؟

من Sql Server Managment Studio رو ندارم یعنی وقتی از all program به قسمت Configuration Tools از SQl server200 میرم فقط 3 گزینه داره:

SQL Server Configuration Manager
SQL Server Error and Usage Reporting
SQL Server Surface Area Configuration

حالا اگه اینی که میگین جای دیگه هست بفرمایید که برم.
ضمنا من نسخه Express از sql 2005 رو کامپیوترم نصبه، حالا نمیدونم این مشکلی ایجاد میکنه یا نه چون در قسمتی که جناب hdv212 عزیز فرمودن:


در سمت راست روی Sql Server (YourSqServerInctance) کلیک راست کنید و گزینه ی Restart رو بزنید (یا یه بار Stop کنید و دوباره Start کنید)

من به جای گزینه Sql Server (YourSqServerInctance) این گزینه رو دارم:
SQL server(SQLEXPRESS(
ولی به هر حال مشکلی ایجاد نکرد و کارایی که گفته بدم درست انجام شد
بازم از پیگیری های شما دوستان ممنونم

hdv212
پنج شنبه 12 مهر 1386, 14:52 عصر
دوست عزیز بهتره از Trusted Connection استفاده کنی که دیگه نیازی به ذکر user و pass نداشته باشی، برای دیدن Connection String های مختلف با دیتابیس های مختلف به لینک زیر مراجعه کنید و پس از انتخاب نوع دیتابیست ، Connection string مورد نظرتو انتخاب کن :
http://www.connectionstrings.com/

piroozman
پنج شنبه 12 مهر 1386, 15:29 عصر
به فایل ضمیمه توجه فرمایید

emad_67
پنج شنبه 12 مهر 1386, 16:53 عصر
دوست عزیز واقعا ممنون
من وقتی در پنجره Add connection در sql connection ایی که به فرمم اضافه کردم یوزر sa رو وارد کردم، باز هم ارور داد و وقتی با windows Authentication خواستم وصل بشم اروری مبنی بر اینکه دیتابیس pubs وجود ندارد را داد و مشکل یوزر حل شد. به هر حال اصلا شاید یوزری به نام sa هم تعریف نشده باشه.
بازم خیلی متشکرم از لطفی که کردین.
از دوستان کسی میدونه که دیتابیس pubs کلا توی sql 2005 وجود نداره یا فقط برا من اینجوریه؟

hassan razavi
پنج شنبه 12 مهر 1386, 17:16 عصر
یک فایل با پسوند udl بسازبد. (برای ساختنش می تونید یک فایل txt بسازید و اونو rename کنید)
از این طریق یک connection مس تونید بسازید . به sql وصل بشید و لیست database ها تون رو ببینید.
ولی پیشنهاد من اینه که Sql Server 2000 Enterprise را کامل نصب کنبد تا بهتره بتونیم کمکتون کنیم

emad_67
پنج شنبه 12 مهر 1386, 18:23 عصر
یک فایل با پسوند udl بسازبد. (برای ساختنش می تونید یک فایل txt بسازید و اونو rename کنید)
از این طریق یک connection مس تونید بسازید . به sql وصل بشید و لیست database ها تون رو ببینید.
ولی پیشنهاد من اینه که Sql Server 2000 Enterprise را کامل نصب کنبد تا بهتره بتونیم کمکتون کنیم

با تشکر اینم راه خوبی بود. در قسمت initial catalog در تب connection از این فایل فقط 4 تا دیتابیس وجود داره که اونی که من میخوام جزش نیست.
به هر حال از همه آقایون کمال تشکر رو دارم. تا برم sql server 2000 رو نصب کنم ببینم چی میشه

hdv212
پنج شنبه 12 مهر 1386, 22:07 عصر
برای دانلود دیتابیس pubs که یکی از sample های sql server 2000 هست به این لینک (http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en) مراجعه کنید.
همچنین برای دانلود sample های sql server 2005 به این لینک (http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=5705) مراجعه کنید.

piroozman
شنبه 14 مهر 1386, 21:49 عصر
به فایل ضمیمه توجه کنید. انشالله که مشکل شما را حل کند.:لبخندساده:

bpzone
جمعه 20 دی 1387, 18:20 عصر
با سلام
من نمی تونم توی شبکه به SQL SERVER کانکت بشم ...
تمام مطالبی رو هم که توس سایت دوستان اعلام کرده بودن . بررسی کردم ولی بازم نشد ...


من کانکشن های زیر رو امتحان کردم ... ولی همه یک ایراد رو میگیرن ...

کانکشن های امتحان شده


Data Source=Behrooz;Initial Catalog=MCI;Integrated Security=True ; User=sa ; Password=1

data source="192.168.0.1";workstation id="192.168.0.2";pwd=1;packet size=4096;integrated security=SSPI;user id=Behrooz;persist security info=False;initial catalog=MCI

Server=192.168.0.1;Database=MCI;User ID=sa;Password=1;Trusted_Connection=False;

server=192.168.0.1;database=MCI;user id=sa;password=1;




ایراد گرفته شده


An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

amirsajjadi
یک شنبه 25 بهمن 1388, 20:23 عصر
http://www.connectionstrings.com/

aghayex
چهارشنبه 28 بهمن 1388, 20:40 عصر
با سلام
من هم این مشکل رو دارم دیتا بیس من هم با 2005 نوشتم و با دات نت اونو فراخوانی کردم حالا این جور خطاهای بالا رو می گیره سوال من اینه که من این برنامه رو می خوام به شکل یک setup در بیارم اگه بنا باشه چنین مشکل هایی رو برا اون کاربر به وجود بیاره که ضایعه می شه . مشکل من ارتباط از نوع تک سیستمی هست نه شبکه ای

ragandasht
سه شنبه 17 فروردین 1389, 12:05 عصر
از این رشته اتصال استفاده کن :
string strcon="data source=localhost;initial catalog=bank name;integrated security=true:لبخندساده:

اینم ایمیلم اگه جواب نگرفتی به من میل بزن:لبخندساده:
mehdi_zamani18@yahoo.com

majid325
سه شنبه 17 فروردین 1389, 13:36 عصر
لطفا در هنگام جواب دادن به تاریخ پستها هم نگاه کنید