PDA

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



andaron
یک شنبه 04 مهر 1389, 03:37 صبح
من باستفاده از C#‎ میخوام به sql server وصل شم نام پایگاه داده من taksisrvis2 هستش که کد رو بصورت زیر نوشتم

SqlConnection objconnection = new
SqlConnection("server=local;database=ReportServer;" + " Integrated Security=true");




SqlDataAdapter objdataadaptor=new SqlDataAdapter();
DataSet objdataset = new DataSet();


objdataadaptor.SelectCommand=new SqlCommand();
objdataadaptor.SelectCommand.Connection=objconnect ion;
objdataadaptor.SelectCommand.CommandText =
"select ranande_id,ranande_name,ranande_famili,ranande_nom ashin" + "FROM table_shofer";
objconnection.Open();
objdataadaptor.Fill(objdataset, "table_shofer");

که این ارور رو میده( در کد قسمت :objconnection.open

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)


البته از خود پایگاه داده های پیشفرض هم استفاده کردم که همین ارور رو داد
خالی از لطف نیست که بگم من در قسمت ورود sql server می تونم با نام کامپوتر وارد شم و از پایگاه ده استفاده کنم ولی وقتی می خوام اون به c# وصل کنم خطای ورو د میده و میگه یوزر و پسورد مشکل دارند در صورتی که من یوزی پسورد ندارم برای همین از local استفاده می کنم که این ارور رو داد
اینم بگم که من با استفاده از گرید ویو و به صورت ویزارد می تونم به پایگاه داده وصل شم ولی از طریق کد نویسی نه
با تشکر

andaron
یک شنبه 04 مهر 1389, 11:27 صبح
دوستان راهنمایی کنند ؟

Reza_Yarahmadi
یک شنبه 04 مهر 1389, 15:00 عصر
مشكل از اين كدي كه نوشتيد نيست مشكل از كانكشن استرينگ برنامه است كه شما اونو نذاشتيد!!
اگر ويزاردي وصل شديد توي Solution و پوشه Propeties روي Setting دابل كليك كنيد و كانكشن استرينگي كه اونجاست رو كپي كنيد و به جاي كانكشن استرينگ برناه بذاريد.
در ضمن دستور sql رو هم بايد اصلاح كنيد. قبل از كلمه From يك فاصله بزنيد تا به اسم ستون قبلش نچسبه.

k1csharpdeveloper
دوشنبه 05 مهر 1389, 20:43 عصر
ابتدا وارد sqlserverconfiguration manager شوید سپس پس از connect شدن روی database رایت کلیک کنید و newdatabse را بزنید پس از ساخت داخل folder دیتابیس خود شده سپس روی table رایت کلیک کنید و new table را بزنید سپس چند field وارد کنید مثلا id از نوع int و name از نوع text وphonenumber از نوع int سپس پس از ساخت فرم را ببندید سپس نام جدول را table1 بزنید سپس روی table1 رایت کلیک کرده سپس edit view 200 rows را بزنید و یک سری اطلاعات وارد فیلدها کنید سپس فرم را بسته و از sqlserver خارج شوید.
سپس وارد محیط c#.net شوید یک windows application جدید بسازید سپس یک datagridview از toolbox درگ دراپ کرده سپس بعد از کلیک روی دیتا گرید ویو بالای آن سمت راست یک فلش کوچک وجود دارد بعد از کلیک روی آن choose data source را زده add new database را زده سپس next را بزنید پس از retrive شدن table را تیک کنید سپس finish را بزنید و بعد از اجرای برنامه اطلاعات load شده و اطلاعات وارد شده در فیلدها نمایش داده میشود.

k1csharpdeveloper
دوشنبه 05 مهر 1389, 20:48 عصر
من برای فهم بیشتر میخوام یک listview رو به db sqlserver متصل و اطلاعات رو ritrive کنم
پس یک listview , button اضافه کنید و این کد رو براش بنویسید ما نباید از طریق wizard یا add data استفاده کنیم تا کدنویسی کنیم:



private void btnSample1_Click(object sender, EventArgs e)
{
///Windows authentication

string strConnectionString = @"Data Source=VALUED-E5B4876A\MSSMLBIZ;Initial Catalog=PhoneBook;Integrated Security=True";
/////SQL authentication

//string strConnectionString = @"Password=123456;Persist Security Info=True;User ID=admin;

//Initial Catalog=Arash;Data Source=.\SQLEXPRESS";



string strQuery = "SELECT LastName, FirstName, PhoneNumber FROM Table1";

System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection

(strConnectionString);
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
System.Data.SqlClient.SqlDataReader reader = null;
command.CommandText = strQuery;
command.CommandType = CommandType.Text;
command.Connection = connection;
lvwContacts.Items.Clear();
try

{
connection.Open();
reader = command.ExecuteReader();
while (reader.Read())
{
string strFirstName = reader[0].ToString();
string strLastName = reader[1].ToString();
string strPhoneNumner = reader[2].ToString();
ListViewItem item = new ListViewItem(strFirstName);
item.SubItems.Add(strLastName);
item.SubItems.Add(strPhoneNumner);
lvwContacts.Items.Add(item);
}
}
catch (System.Data.SqlClient.SqlException sqlEx)
{
MessageBox.Show(sqlEx.Message);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally

{
if (reader != null)
{
if (!reader.IsClosed)
reader.Close();
reader.Dispose();
}
command.Dispose();
if (connection.State != System.Data.ConnectionState.Closed)
connection.Close();
connection.Dispose();
}
}

k1csharpdeveloper
دوشنبه 05 مهر 1389, 20:49 عصر
private void btnSample1_Click(object sender, EventArgs e)
{
///Windows authentication

string strConnectionString = @"Data Source=VALUED-E5B4876A\MSSMLBIZ;Initial Catalog=PhoneBook;Integrated Security=True";
/////SQL authentication

//string strConnectionString = @"Password=123456;Persist Security Info=True;User ID=admin;

//Initial Catalog=Arash;Data Source=.\SQLEXPRESS";



string strQuery = "SELECT LastName, FirstName, PhoneNumber FROM Table1";

System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection

(strConnectionString);
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
System.Data.SqlClient.SqlDataReader reader = null;
command.CommandText = strQuery;
command.CommandType = CommandType.Text;
command.Connection = connection;
lvwContacts.Items.Clear();
try

{
connection.Open();
reader = command.ExecuteReader();
while (reader.Read())
{
string strFirstName = reader[0].ToString();
string strLastName = reader[1].ToString();
string strPhoneNumner = reader[2].ToString();
ListViewItem item = new ListViewItem(strFirstName);
item.SubItems.Add(strLastName);
item.SubItems.Add(strPhoneNumner);
lvwContacts.Items.Add(item);
}
}
catch (System.Data.SqlClient.SqlException sqlEx)
{
MessageBox.Show(sqlEx.Message);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally

{
if (reader != null)
{
if (!reader.IsClosed)
reader.Close();
reader.Dispose();
}
command.Dispose();
if (connection.State != System.Data.ConnectionState.Closed)
connection.Close();
connection.Dispose();
}
}

k1csharpdeveloper
دوشنبه 05 مهر 1389, 20:57 عصر
حالا از طریق متودولوژی Disconnected:
یک datagridview و button اضافه کنید
یعد از add new item یک application configuration file اضافه کنید و این کدش:



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="PhoneBook" connectionString="Integrated Security=SSPI;Initial Catalog=PhoneBook;Data Source=VALUED-E5B4876A\MSSMLBIZ" />
<add name="DisconnectedStrategyStepByStep.Properties.Settings .PhoneBookConnectionString"

connectionString="Data Source=.\sqlexpress;Initial Catalog=PhoneBook;Integrated Security=True"

providerName="System.Data.SqlClient" />
<add name="DisconnectedStrategyStepByStep.Properties.Settings .PhoneBookConnectionString1"

connectionString="Data Source=VALUED-E5B4876A\MSSMLBIZ;Initial Catalog=PhoneBook;Integrated Security=True"

providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
سپس این کد رو داخل فرم اعمال کنید:




private void btnSample3_Click(object sender, EventArgs e)
{
string strConnectionString = @"Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=PhoneBook;
Data Source=VALUED-E5B4876A\MSSMLBIZ";
string strQuery = "SELECT FirstName, LastName, PhoneNumber FROM Table1";

System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(strConnectionS tring);
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
System.Data.SqlClient.SqlDataReader reader = null;
command.CommandText = strQuery;
command.CommandType = CommandType.Text;
command.Connection = connection;
lvwContacts.Items.Clear();
try

{
connection.Open();
reader = command.ExecuteReader();
int intFirstNameOrdinal = reader.GetOrdinal("FirstName");
int intLastNameOrdinal = reader.GetOrdinal("LastName");
int intPhoneNoOrdinal = reader.GetOrdinal("PhoneNumber");
while (reader.Read())
{
string strFirstName = reader[intFirstNameOrdinal].ToString();
string strLastName = reader[intLastNameOrdinal].ToString();
string strPhoneNumner = reader[intPhoneNoOrdinal].ToString();
ListViewItem item = new ListViewItem(strFirstName);
item.SubItems.Add(strLastName);
item.SubItems.Add(strPhoneNumner);
lvwContacts.Items.Add(item);
}
}
catch (System.Data.SqlClient.SqlException sqlEx)
{
MessageBox.Show(sqlEx.Message);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally

{
if (reader != null)
{
if (!reader.IsClosed)
reader.Close();
reader.Dispose();
}
command.Dispose();
if (connection.State != System.Data.ConnectionState.Closed)
connection.Close();
connection.Dispose();
}
}

andaron
سه شنبه 06 مهر 1389, 08:47 صبح
ااز دوستان همگی ممنون مشکل به لطف راهنمایی دوستان حل شد اما حالا که یه برنامه جدید ساختم با یه مشکل دیگه روبرو شدم و اون اینه که به from گیر داده که سینتکس نزدیک هستش (همچین چیزی ) هرکاری هم می کنم هرچی فاصله رو هم هم زیاد یا کم می کنم باز هم ارور میده
متن ارور : Incorrect syntax near the keyword 'FROM'





private const string _commandtext = ("select table_shofer.ranande_id,ranande_name,famili,"+" FROM table_shofer" );
private const string _connectionstring = "Data Source=MOHAMMAD-B7FB8B\\SQLEXPRESS;Initial Catalog=taksiservis;Integrated Sec" +
"urity=True";

// آبجکت های سراسری
SqlConnection objconnection = new SqlConnection();
SqlDataAdapter objdataadaptor=new SqlDataAdapter();
DataSet objdataset = new DataSet();
DataView objdataview = new DataView();
CurrencyManager objcurrencymanage;

//تمام شد
//اولین زیربرنامه FillDatasetandVeiw
private void fildatasetandveiw()
{
objdataset = new DataSet();
objdataadaptor.Fill(objdataset,"table_shofer");
objdataview = new DataView (objdataset.Tables["table_shofer"]);
objcurrencymanage = (CurrencyManager)
(this.BindingContext[objdataset]);


}

andaron
سه شنبه 06 مهر 1389, 10:19 صبح
حل شد؟
دلیل : فهمیدم که اگر به FROM گیر بده حتما از خود کلمه from نیست بلکه شاید نام جدول و یا رکورد ها مشکل داشته باشه