PDA

View Full Version : خطا در متد Open مربوط به شیء SqlConnection



Blackk_lightt
شنبه 10 شهریور 1386, 17:35 عصر
سلام.
من کد زیرو تو c# مینویسم.ولی تا به دستور open میرسه از برنامه خارج میشه و خطا میگیره.
لطفا کمک کنید.


SqlConnection objConnection = new SqlConnection(
"server=localhost;database=pubs;" +
"user id=sa;password=");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection= objConnection;
objDataAdapter.SelectCommand.CommandText =
"SELECT au_lname, au_fname, title, price " +
"FROM authors " +
"JOIN titleauthor ON authors.au_id = " +
"titleauthor.au_id " +
"JOIN titles ON titleauthor.title_id = " +
"titles.title_id " +
"ORDER BY au_lname, au_fname";
objDataAdapter.SelectCommand.CommandType =
CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet, "authors");
objConnection.Close();

اینم خطایی که میگیره:
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
کسی میدونه چرا ؟:افسرده::افسرده::افسرده::عص انی++::عصبانی++:

مهدی رحیم زاده
شنبه 10 شهریور 1386, 18:10 عصر
این اشکال مربوط به کانکشنه ( البته من اینجوری فکر میکنم ) ...
یه سرچ در مورد کانکشن انجام بده ، در مورد همین اشکال بار ها و بارها بحث شده ، اگه به نتیجه نرسیدی برنامتو بزار ببینیم چکار می تونیم با هم انجام بدیم ...

موفق باشید

abadanboy
شنبه 10 شهریور 1386, 18:31 عصر
100% مشکل از کانکشن هست سرور sql رو نمیشناسه ینجوری بزار

server=(local)

Arman_1367
شنبه 10 شهریور 1386, 22:15 عصر
نه اینجور بنویس :

SqlConnection objConnection = new SqlConnection(
"server=[localhost];database=pubs;" +
"user id=sa;password=");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection= objConnection;
objDataAdapter.SelectCommand.CommandText =
"SELECT au_lname, au_fname, title, price " +
"FROM authors " +
"JOIN titleauthor ON authors.au_id = " +
"titleauthor.au_id " +
"JOIN titles ON titleauthor.title_id = " +
"titles.title_id " +
"ORDER BY au_lname, au_fname";
objDataAdapter.SelectCommand.CommandType =
CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet, "authors");
objConnection.Close();

سار
یک شنبه 11 شهریور 1386, 09:43 صبح
به جای LocalHost یه . (نقطه) بنویس( که یعنی همین دستگاه) اگر باز هم به مشکل بر خوردی برو SQL Server رو چک کن ببین آیا SQL Server and Windows Authentication mode انتخاب شده یا نه.
اگر نشد بگو تا موارد دیگه رو برات بگم.

Blackk_lightt
یک شنبه 11 شهریور 1386, 15:00 عصر
به جای LocalHost یه . (نقطه) بنویس( که یعنی همین دستگاه) اگر باز هم به مشکل بر خوردی برو SQL Server رو چک کن ببین آیا SQL Server and Windows Authentication mode انتخاب شده یا نه.
اگر نشد بگو تا موارد دیگه رو برات بگم.
نقطه نوشتم ولی فرقی نکرد.
راه حل دوم رو متوجه نشدم.دقیقا میگی کجا باید برم ؟
ممنون از راهنماییت.

مهدی رحیم زاده
یک شنبه 11 شهریور 1386, 15:53 عصر
دوست عزیز
بانک و برنامه رو بزار تا مشکل رو براتون حل کنیم ...

smt_414
یک شنبه 11 شهریور 1386, 15:56 عصر
سلام
دوست عزیز شما حنما یک دیتا بیس به اسم pubs دارید ؟
خب حالا در ویژوال استدیو از قسمت server explorer روی اسم پایگاه (pubs) کلیک کنید و از قسمت properties , آدرسی که روبه روی connection string هست رو کپی کنید و در برنامه به جای آدرسی که نوشتید قرار بدید
امید وارم مشکاتون رفع بشه .

mahdishojaee
یک شنبه 11 شهریور 1386, 22:08 عصر
اینم ممکنه بتونه کمکت کنه :

"server = " + System.Net.Dns.GetHostName().ToString() + ";Initial Catalog=pubs;Integrated Security=True"

Amir Oveisi
یک شنبه 11 شهریور 1386, 23:53 عصر
مشکل از SQL SERVER ی که الان نصب کردیه!
من هم این مشکل رو داشتم
دوباره نصب کن و مطمئن باش که درست نصب شده و فعاله سرویسش.

Blackk_lightt
دوشنبه 12 شهریور 1386, 09:38 صبح
از همه دوستایی که جواب دادن خیلی ممنون.
من تازه تازه شرو کردم به کار به database و این کد هم مثال جزوه ای که میخونم.
از SQL خود Visual Studioاستفاده میکردم.یه بار هم عوضش کردم و Sql Server Experes نصب کردم ولی درست نشد.تو جزوه نوشته بود Pubs با خود Sql Server هست.حالا من نمیدونم واقعا pubs دارم یا نه؟
از کجا باید بفهمم؟
چه جوری یه Database دیگه خودم درست کنم؟

moji_0282
دوشنبه 12 شهریور 1386, 12:13 عصر
سلام
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

من هم با چنین مشکلی برخورد کردم.
به نظر اشکال از connection هست .
یه راهش اینه بدون اینکه کد بنویسی یه connection از طریق منوی Tools و از اونجا گزینه connect to database برقرار کنی اگه ارتباط برقرار شد میشه گفت مشکل از کد سورس هست میتونی تو همون صفحه ی connection از طریق دکمه advance از رشته connection که توسط برنامه ساخته شده تو کد سورس برنامه ی که داری استفاده کنی .
اگه جواب نگرفتی SQL Server 2005 را از دوباره نصب کن
من این کار ها را کردم جواب گرفتم.

moji_0282
دوشنبه 12 شهریور 1386, 12:14 عصر
سلام
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

من هم با چنین مشکلی برخورد کردم.
به نظر اشکال از connection هست .
یه راهش اینه بدون اینکه کد بنویسی یه connection از طریق منوی Tools و از اونجا گزینه connect to database برقرار کنی اگه ارتباط برقرار شد میشه گفت مشکل از کد سورس هست میتونی تو همون صفحه ی connection از طریق دکمه advance از رشته connection که توسط برنامه ساخته شده تو کد سورس برنامه ی که داری استفاده کنی .
اگه جواب نگرفتی SQL Server 2005 را از دوباره نصب کن
من این کار ها را کردم جواب گرفتم.

babak23
دوشنبه 12 شهریور 1386, 13:25 عصر
از طریق جستجوی ویندوز فایلها ی با پسوند mdf مثل pubs.mdf جستجو کن .
اگه از sql 2000 استفاده کنی هم بانک اطلاعاتی pubs.mdf را داره هم میتونی یه دیتا بیس ایجاد کنی . راستش من هم وقتی از sql ویژوال استفاده میکردم نه بانک pubs.mdf را داشت نه تونستم دیتا بیس درست کنم.
اگه نظر من را میخوای sql 2005 را پاک کن بجاش sql 2000 نصب کن .
گزارش گیری با sql 2005 هم اگه کانکشنت SqlClient باشه دنگ و فنگ داره
تو sql 2000 هم فکر کنم با کانکشن OleDb کار کنی بهتر باشه.

Blackk_lightt
دوشنبه 12 شهریور 1386, 14:13 عصر
فرق oledb به SqlClient چیه ؟
از جواب همه بچها ممنون.

babak23
دوشنبه 12 شهریور 1386, 14:24 عصر
کلاس های که توی دات نت برای SqlClient تعریف شده فقط با بانک اطلاعاتی sql کار میکنه
مزیتی که داره سرعت بالای اون هست
کلاسهای که با oledb طراحی شده اند علاوه بر بانک های sql با بانک های مثل اکسس و اوراکل و غیره... کار میکنه و سرعت کمتری دارند.

به جای استفاده از کلاس using System.Data.SqlClient
باید از این کلاس استفاده کنی using System.Data.OleDb

k_zo66
چهارشنبه 14 شهریور 1386, 23:17 عصر
سلام
با تشکر از همگی این مشکل برای من هم پیش اومده تمام مراحل بالا رو امتحان کردم ولی جواب نداده
خیلی بهش احتیاج دارم لطفا کمکم کنید

k_zo66
چهارشنبه 14 شهریور 1386, 23:34 عصر
ارتباط از طریق منوی tools بعد connection to database برقرار میشه ولی از طریق کد زیر
SqlConnection con = newSqlConnection();
con.ConnectionString = "Data Source=.\'sqlexpress;Initial Catalog=maryam;User ID=sa";
con.Open();
SqlCommand com = newSqlCommand();
com.Connection = con;
com.CommandText = "select *from maryam";
SqlDataReader r1 = com.ExecuteReader();
if (r1.Read())
Response.Write("welcom to .net2");

به open که می رسه خطا زیرو میده
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)

sepehr_sepehr
پنج شنبه 12 شهریور 1388, 10:52 صبح
همونطور که گفتید بدون کد بنویسی یه connection از طریق منوی Tools و از اونجا گزینه connect to database رو انتخاب کردم ، ارتباط برقرار شد و connectionstring رو کپی کردم ولی این خطا رو داد:
A user instance was requested in the connection string but the server specified does not support this option.
Changed database context to 'master'.
Changed language setting to us_english.

mn_zandy63
پنج شنبه 12 شهریور 1388, 15:14 عصر
یک بار دیگه همین کار رو انجام بده.
در پنجره ای که Server و database رو انتخاب میکنی روی Advanced کلیک کن.
در پنجره باز شده آخرین گزینه User Instance رو چک کن ببین مقدارش True هست؟
بذارش False.
چک کن و ببین آیا مشکلت حل شده یا نه.

sepehr_sepehr
پنج شنبه 12 شهریور 1388, 17:58 عصر
ممنون از لطفطون.مشکلم حل شد.گزینه User Instance =trueبود.

mreza_adeli58
شنبه 05 دی 1388, 17:40 عصر
دوستان من این کد را برای اتصال به دیتابیس نوشتم ولی خطا میده و کانکشن استرینگ رو از خود برنامه برداشتم ولی باز کانکت نمیشه و وقتی به اپن میرسه ارور میده .
SqlConnection opendb = new SqlConnection();
opendb.ConnectionString = "Data Source=MRA-ASL\SQLEXPRESS;Initial Catalog=bank;Integrated Security=True";
opendb.Open();

FastCode
پنج شنبه 10 دی 1388, 14:45 عصر
opendb.ConnectionString = "Data Source=MRA-ASL\SQLEXPRESS;Initial Catalog=bank;Integrated Security=True";

MRA-ASL\SQLEXPRESS اشتباه MRA-ASL\\SQLEXPRESS درسته:قهقهه:

لطفا" کدتون کپی کنید کسی به اسم کامپیوتر و بانک و ... شما نمی خنده همه به \ می خندن

اگر مطمئن هستی که connectionstring ایراد داره یه سر به این سایت بزن
http://www.connectionstrings.com