PDA

View Full Version : سوال: مشکل در کانکشن



AliRezaPro
یک شنبه 25 مرداد 1388, 17:31 عصر
سلام
من طبق کتاب آقای هاشمی الان صفحه ی 638 هستم
کدی که برای Sql server برای بانک Pubs برای مثال بود رو من کامل نوشتم ولی در آخر بهم Sqlexception داد
و متن :
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
مشکل از کجاست؟
اینهم از کد:

public partial class Form1 : Form
{
SqlConnection objSqlConnection = new SqlConnection("server=localhost;database=pubs;" +"user id=sa;password=");
SqlDataAdapter objsqlDataAdapter = new SqlDataAdapter();
DataSet objDataset = new DataSet();
////////////////////////////////////
private void Form1_Load(object sender, EventArgs e)
{
// Set the SelectCommand properties...
objsqlDataAdapter.SelectCommand = new SqlCommand();
objsqlDataAdapter.SelectCommand.Connection = objSqlConnection;
objsqlDataAdapter.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";
objsqlDataAdapter.SelectCommand.CommandType = CommandType.Text;

objSqlConnection.Open();
objsqlDataAdapter.Fill(objDataset, "authors");
objSqlConnection.Close();

DataGrid1.AutoGenerateColumns = true;
DataGrid1.DataSource = objDataset;
DataGrid1.DataMember = "authors";
objsqlDataAdapter = null;
objSqlConnection = null;




}به objSqlConnection.Open(); گیر میده

Alireza Orumand
سه شنبه 27 مرداد 1388, 07:46 صبح
سلام
احتمالا شما از sql server autentication استفاده کردید و TCP/IP توی sql server شما غیر فعاله. به منوی استارت برید و از در زیر مجموعه sql server در زیر مجموعه configuration tools ابزار sql server configuration manager رو انتخاب کنید و در سمت چپ sql server network configuration رو انتخاب کنید و بعد در سمت راست؛ از زیرمجموعه Protocols for mssqlserve گزینه TCP/IP رو enable کنید.
در ضمن توی کد برنامه قبل از اجرای درستور objSqlConnection.Open() چک کنید ببیندی که کانکشن در چه وضعیتی هست. objSqlConnection.State رو بررسی کنید که برابر با open نباشه. یعنی حتما close باشه بعد شما قدام به باز کردنش بکنید.
موفق باشید.

AliRezaPro
سه شنبه 27 مرداد 1388, 10:40 صبح
بابت جواب ممنون
کاری که گفتی رو انجام دادم بابت کانفیگ"TCP/IP رو Enable کردم"
اما دوباره به Open() گیر داده
این دفعه SqlEcxceptionاین ارور رو داده
Login failed for user 'sa'.

Alireza Orumand
چهارشنبه 28 مرداد 1388, 07:55 صبح
سلام

اما دوباره به Open() گیر داده
این دفعه SqlEcxceptionاین ارور رو داده
Login failed for user 'sa'.
خوب خدا رو شکر که مشکل قبلی حل شد. الان دیگه خیلی واضح هست که اشکال از چی میتونه باشه.
اول چک کنید که یوزد sa توی sql server فعال باشه. برای اینکار توی sql server به زیر مجموعه security برید و بعد در قسمت logins روی sa راست کلیک کنید و properties بگیرید. در قسمت Statusببینید بررسی کنید که Enable و grantباشه. اگر Desable بود یا denay حالت ها رو به enable و grant تغییر بدید.
اگر شرایط بالا صحیح بود، به طور حتم شما پسورد sa رو اشتباه وارد میکنید. پس connection string رو اصلاح کنید و پسورد صحیح رو وارد کنید.
موفق باشید.