PDA

View Full Version : مشکل در ایجاد کانکشن



مهدی رحیم زاده
پنج شنبه 23 شهریور 1385, 13:14 عصر
سلام من وقتی که برنامه رو اجرا می کنم تو کد پایین رو قسمت 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)
اینم کد برنامه :

private void Form1_Load(object sender, EventArgs e)
{
SqlConnection ado_bank= new SqlConnection();
ado_bank.ConnectionString = "server=localhost;database=E:\\Program\\librery\\ba nk\\ebl_b.mdf;uid=sa;pwd=s;connection timeout=20";
ado_bank.Open();
}

alinaghiha
پنج شنبه 23 شهریور 1385, 19:18 عصر
دوستان خسته نباشید منم همین مشکل رو دارم
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)
این خطا رو هنگام ارتباط با بانک اطلاعاتی می ده
objDataAdapter.Fill(objDataSet, "authors");
البته من احساس می کنم بانک authors رو پیدا نمی کنه
این خطا در هنگام کار با ebook استاد گرانقدر آقای هاشمیان پیش می یاد صفحه 620 تا 630
نمی دونم کجای کار اشتباه کردم


ممنون می شم اگه کسی این مشکل رو برام حل کنه

مهدی رحیم زاده
شنبه 25 شهریور 1385, 06:47 صبح
ای بابا یعنی یکی پیدا نمیشه که جواب بده ؟؟؟؟؟؟؟؟؟؟؟

ARA
شنبه 25 شهریور 1385, 08:18 صبح
سلام :لبخند:
من از این استفاده کردم جواب داد امتحان کن و بعدش بهم بگو جواب گرفتی یا نه :اشتباه:



sqlConnection1.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename="+Application.ExecutablePath+"\\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

alinaghiha
شنبه 25 شهریور 1385, 11:42 صبح
سلام :لبخند:
من از این استفاده کردم جواب داد امتحان کن و بعدش بهم بگو جواب گرفتی یا نه :اشتباه:



sqlConnection1.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename="+Application.ExecutablePath+"\\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";


ممنونم من برم تست کنم

احمد سامعی
یک شنبه 26 شهریور 1385, 12:51 عصر
درود و صد بدرود بر مردمان ایران زمین




SqlConnection myConnection = new SqlConnection();
string conString="data source=myComputerName;initial
catalog=myDatabase;workstation id=myComputerName;";
myConnection.ConnectionString=conString;

فقط کاغیه در قسمت cotalog بجای mydatabase اسم بانک اطلاعاتی رو وارد کنید البته این مال SQL Server هست

مهدی رحیم زاده
یک شنبه 26 شهریور 1385, 20:04 عصر
دوستهای گلم سلام
هیچ کدوم جواب نداد
ببینید بانک من تو این مسیره
E:\Program\library\bank\ebl_b.mdf
اسم کامپیوتر هم
msb-8c45a815782
خوب حالا با این اطلاعات برای من کد یک کانکشن رو بنویسید . اگر این کارو بکنید خیلی کمکم کردین

احمد سامعی
سه شنبه 28 شهریور 1385, 16:32 عصر
دوستهای گلم سلام
هیچ کدوم جواب نداد
ببینید بانک من تو این مسیره
E:\Program\library\bank\ebl_b.mdf
اسم کامپیوتر هم
msb-8c45a815782
خوب حالا با این اطلاعات برای من کد یک کانکشن رو بنویسید . اگر این کارو بکنید خیلی کمکم کردین

همکار عزیز
این کد کامل فقط حتما شما باید طبق سیستم خودتون تعریف کنید


SqlConnection myConnection = new SqlConnection();
string conString="Data Source=computername;packet size=4096;Integrated Security=true;initial catalog=DataBasename";
myConnection.ConnectionString=conString;
SqlCommand myCommand=new SqlCommand();
myCommand.Connection=myConnection;
myConnection.Open();
myCommand.CommandText="ُSELECT * FROM my_table')";
myCommand.ExecuteNonQuery();
myConnection.Close();

شما باید علاوه بر نام کامپیوتر و نام دیتا بیس ، مقدار packet sizeرو هم از کوئری در بیارید
شاید هم مشکل شما در این که اصلا دیتابیس رو به add نکردید ( به Enterprise Manager ) در این صورت اصلا نیازی به مسیر دهی ندارید حتما این کار رو باید بکنید وگر نه کار نمی کنه

مهدی رحیم زاده
جمعه 31 شهریور 1385, 11:01 صبح
سلام دوست عزیز

شما باید علاوه بر نام کامپیوتر و نام دیتا بیس ، مقدار packet sizeرو هم از کوئری در بیارید
شاید هم مشکل شما در این که اصلا دیتابیس رو به add نکردید ( به Enterprise Manager ) در این صورت اصلا نیازی به مسیر دهی ندارید حتما این کار رو باید بکنید وگر نه کار نمی کنه


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

negar84
جمعه 31 شهریور 1385, 15:44 عصر
دوست عزیز من هم مشکل شما رو داشتم ولی شما می تونید خیلی راحت یه datasource ایجاد کنید از data->show data source و مابقی مراحل از اون جا connection string را کپی بگیرید و توی پروژتون بگذارید (دقت کنید هر جا یک \ بود باید دو تا باشه تا error نده ) این جوری مشکلتون حل می شه ان شا ءالله

Milad Mohseny
جمعه 31 شهریور 1385, 16:27 عصر
در ConnectionString در قسمت Data Source را به صورت زیر بنویسید
Data Source=ComputerName\\SQLEXPRESS

احمد سامعی
جمعه 31 شهریور 1385, 22:29 عصر
سلام دوست عزیز

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

درود صد بدرود بر مردمان ایران زمین

تمام توضیحات زیر مربوط به دات نت 2003 است که در 2005 کمی در تعریف کنترل فقط فرق دارد و در کلیات یکی است

شما باید اول یک سرور رو کامپیوتر مورد استفاده برنامه داشته باشید برای این کار می تونید یک SQL Server نصب کنید یا فقط موتور سرورش رو نصب کنید

شما یک برنامه SQL Srver با ورژنی که می خوای نصب کنید ( روی هر کامپیو تری که می خوای برنامت رو استفاده کنی ( دو نوع سرور وجود داره یکی مال شبکه های اینترنتی و یکی هم که locsal است و برای استفاده database ها که برای برنامه های معمولی تحت ویندوز است)

بعد برنامه Enterprise Manager رو از مسیر SQL Server در start > program باز میکنید

چندتا شکل پیوست کردم اگر مسیر گفته شده روی شکل ها رو بری می تونی databae خودت رو به سرور اضافه کنی
حالا باید برگردی به برنامه کد نویسی کنی کد های بالا رو که به کار بردید برای این که بانک خودتون رو به پرژه اضافاه کنید از قسمتServer Explorer جدول رو پیدا کرده و روی form dialog برنامه خود بکشید بعد دوتا کنترل با نام های SqlConnection1 و sqlDataAdapter1 اضافه می شه( اگه بانک مشکل نداشته باشه )
روی sqlDataAdapter1 کلیک راست کرده و گذینه Configuration Data Adapter کلیک کرده next کنید تا به قسمتی برسید کلیدی به نام Query داره رو ی اون کلید کنید و فیلدهایی که می خواهید استفاده کنید تیک بزنید ( معمولا همه رو ) ok کنید next کنید و fenish کنید
بعد دوباره روی کنترل DataAdapter1 راست کلیک کنید و گذینه Generate Dataset کلیک کنید باید بانکتئن اضافه شده باشه و ok کنید و کنترل دیگه به نام Dataset11 اضافه می شه
حالا همه چیز آماده اتصال به بانک فقط کافیه کد بالا ( پاسخ قبلی) رو در قسمتی که می خواهید به بانک وصل بشید بنویسد ( اما قبلش باید ; using System.Data.SqlClient رو حتما به بالای فایل که کدنویسی می کنید اضافه کنید )

اما برای بدست آوردن packet size کافیه properties کنترل SqlConnection1 باز کنید
بقیه چیزهاش هم که معلوم مثل نام کامپیوتر و نام database و نام جدول که باید ادت بشه
البته درستش این که این connecation string از داخل یک فایل تکس جداگانه خونده بشه تا قابلیت ادیت برای کامپیوتر های مختلف داشته باشه ( من خودم تو این قسمت مشکل دارم که احتمالا در 2005 با استفاده از فایل setting این مشکل نباشه )
و می تونید user name , password نیز به کانکشن استرینگ خود اضافه کنید

دوستان اگه مشکلی در این توضیح می بینند راهنمایی کنند

پایدار باشید

مهدی رحیم زاده
دوشنبه 03 مهر 1385, 13:26 عصر
ببینید دوستهای عزیز من از sql server خود ویژال استدیو استفاده می کنم حالا بگید که من باید چکار کنم ....
ممنونم .....

ARA
سه شنبه 04 مهر 1385, 05:37 صبح
همین راهی که ما انجام دادیم




دوست عزیز من هم مشکل شما رو داشتم ولی شما می تونید خیلی راحت یه datasource ایجاد کنید از data->show data source و مابقی مراحل از اون جا connection string را کپی بگیرید و توی پروژتون بگذارید (دقت کنید هر جا یک \ بود باید دو تا باشه تا error نده ) این جوری مشکلتون حل می شه ان شا ءالله


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



sqlConnection1.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename="+Application.ExecutablePath+"\\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

مهدی رحیم زاده
چهارشنبه 05 مهر 1385, 14:38 عصر
خوب جواب میخوام .....
کسی نیست جواب بده ....

احمد سامعی
چهارشنبه 05 مهر 1385, 16:23 عصر
اینم کد برنامه :

private void Form1_Load(object sender, EventArgs e)
{
SqlConnection ado_bank= new SqlConnection();
ado_bank.ConnectionString = "server=localhost;database=E:\\Program\\librery\\ba nk\\ebl_b.mdf;uid=sa;pwd=s;connection timeout=20";
ado_bank.Open();
}

دورد صد بدرود بر مردمان ایران زمین

اگر شما از NET. 2005 استفاده می کنید باید از این کد استفاده کنید ( تمام مراحل بالا مربوط به 2003 است و در فرصت بعدی روش کامل استفاده از 2005 رو می نویسم اما فعلا استرینگش رو داشته باشید تا بعد ... چون روش تعریف کنترل ها در 2005 فرق می کنه )


string conString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\Program\ \librery\\bank\\ebl_b.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
myConnection.ConnectionString=conString;و می تونید کانکشن استرینگ رو هم از پراپرتیز کنترل کانکشنی که به برنامه اضافه کردین پیدا کنید

مهدی رحیم زاده
پنج شنبه 06 مهر 1385, 17:01 عصر
سلام دوست عزیز
بام هم رو کد برنامه اشکال گرفت اما این دفعه این اشکالو :

An attempt to attach an auto-named database for file E:\Program\librery\bank\ebl_b.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share
کل کد برنامه هم اینه :

sing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
SqlConnection myConnection = new SqlConnection();
string conString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\Program\ \librery\\bank\\ebl_b.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
myConnection.ConnectionString = conString;
myConnection.Open();
}
}
}
روی این اشکال می گیره :

myConnection.Open();
...

negar84
پنج شنبه 06 مهر 1385, 17:20 عصر
connection string رو خودت ننویس بلکه کپی کن (مثلا از همون راهی که قبلا بهت گفتم ) اگه بازم نشد نگاه کن ببین نباید database ات رو attach کنی (توی sql ) اگر قبلا این کار رو کردی یه بار detach اش کن شاید درست شه ...

مهدی رحیم زاده
جمعه 07 مهر 1385, 18:05 عصر
از هموتون تشکر می کنم ....
درست شد ..
ممنونم ....

bloverman
سه شنبه 05 خرداد 1388, 17:45 عصر
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)

کسی میدونه چطوری میشه این مشکل رو حل کرد؟:گریه:

احمد سامعی
سه شنبه 05 خرداد 1388, 19:52 عصر
من فكر مي كنم شما كانكشن استرينگ درست تعريف نكردي
كل كدها و كارهايي كه واسه نحوه درست كردن بانك و اتصال بهش بزار اينجا

mahsa_999
چهارشنبه 13 خرداد 1388, 19:31 عصر
سلام
منم همین مشکل رو داشتم. این راه حل رو امتحان کن:
روی سرور راست کلیک کن و properties رو انتخاب کن. از قسمت select the page صفحه security رو انتخاب کن. و در نهایت: Server authentication-> SQL and Windows Authentication Mode

بعد می تونی یک user تو قسمت logins بسازی و با connection string رو اینطوری تنظیم کنی:
" Data Source=.\\sqlexpress; Database=test; User ID=yourID; Password=yourpass"
یا اگه می خوای با windows authentication وصل شی:
" Data Source=.\\sqlexpress; Database=test; integrated security=true"

http://kbase.gfi.com/showarticle.asp?id=KBID002804

mahsa_999
چهارشنبه 13 خرداد 1388, 19:52 عصر
1)علاوه بر این ممکن هست Named pipe غیر فعال باشه:
SQLServer Configuration Manager-> Client Protocols -> Named pipes -> Enabled
همچنین در این قسمت TCP/IP رو هم فعال کنید.

2) روی My Computer راست کلیک کرده و به قسمت Manage بروید. چک کنید اگر SQL Browser شروع نشده آن را start کنید.

3) در آدرس زیر:
C:(your windows drive)\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
فایل های log را چک کنید تا مطمئن شوید named pipes فعال است:

\\.\pipe\MSSQL$SQLEXPRESS\sql\query

4) این مشکل به Firewall هم می تونه ربط داشته باشه. حتما sqlservr.exe رو به exception های firewall اضافه کنید.

تقریبا هرچی به ذهنم رسید که ممکنه این مشکل رو حل کنه رو اینجا آوردم
امیدوارم این مشکل حل شه

mzosan817
دوشنبه 09 شهریور 1388, 10:19 صبح
ولي مشکل من يه جور ديگه هست ببينيد وقتي ميخواد سايت خودمون بالا بياد اين خطا رو ميده تو قسمت کانکشن استرينگ web.config روي هاست هم اين کد رو نوشتم ولي سايت بالا نمياد چرا؟


add name="ConnectionString" connectionString="Data Source=www.domain.ir;Initial >
Catalog=database name;User ID=...;Password=...;" providerName="System.Data.SqlClient"/>

يه هفته اي هست درگير اين خطا هستيم ممنون ميشم هر کي ميدونه راهنماييم کنه


error:


Server Error in '/' Application.



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)

احمد سامعی
دوشنبه 09 شهریور 1388, 17:38 عصر
connectionString="Data Source=www.domain.ir;>


خوب معلوم چرا خطا مي ده دوست عزيز شما خودت به چيزي كه نوشتي يك نگاهي بنداز
ديتاسورس به يك آدرس IP ارجاع دادي اين كه نمي شه مثل اينكه يك string به يك dataset ارجاع بدي همين قدر بي ربط
شما بايد اول با پشتيباني هاست تماس بگيري و بگي IP سرور بانك اطلاعاتي بهت بده بعد بر مبناي اون تنظيم كني يكسري هم به سايت connectionstring.com بزن نمونه زياد داره
تو پست هاي قبلي همين تاپيك هم نمونه هست

شاد بمانيد.