PDA

View Full Version : مشکل در ثبت اطلاعات درSql (VB.net+فوری)



MahmoodGH
شنبه 28 شهریور 1388, 18:51 عصر
سلام
من یه چند روزیه که در گیر مشکل با Sql هستم. تازه اولین بارمه که دارم با Sql Server کار می کنم. مشکل من هم اینه:
به عنوان مثال کد زیر رو در نظر بگیرید:

Imports System.Data
Imports System.Data.SqlClient
Public Class Add_gold_stone_to_backlog
Dim con As New SqlConnection("Data Source=CNN Catalog=goldsmith ;Integrated Security=True")
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str As String
con.Open()
str = "Insert into [backlog]([b_type],[gold_type],[gold_rate],[stone_type],[stone_price_ghirat],[seller],[b_weight],[b_allsum],[b_pay_sum],[b_remainder_sum])Values('1',@goldt,@goldr,@stonet,@stonep,@seller, @vazn,@allsum,@pay,@remaind) "
Dim cmd As New SqlCommand(str, con)
If (RadioButton1.Checked = True) Then
cmd.Parameters.Add("@goldt", SqlDbType.NVarChar).Value = (ComboBox1.SelectedItem.ToString)
cmd.Parameters.Add("@goldr", SqlDbType.SmallInt).Value = (TextBox1.Text).Trim
cmd.Parameters.Add("@stonet", SqlDbType.NVarChar).Value = 0
cmd.Parameters.Add("@stonep", SqlDbType.Int).Value = 0
End If
If (RadioButton2.Checked = True) Then
cmd.Parameters.Add("@goldt", SqlDbType.NVarChar).Value = 0
cmd.Parameters.Add("@goldr", SqlDbType.SmallInt).Value = 0
cmd.Parameters.Add("@stonet", SqlDbType.NVarChar).Value = (ComboBox2.SelectedItem.ToString)
cmd.Parameters.Add("@stonep", SqlDbType.Int).Value = (TextBox2.Text).Trim
End If
cmd.Parameters.Add("@seller", SqlDbType.NVarChar).Value = (ComboBox3.SelectedItem.ToString)
cmd.Parameters.Add("@vazn", SqlDbType.Int).Value = (TextBox3.Text).Trim
If CheckBox1.Checked = True Then
cmd.Parameters.Add("@allsum", SqlDbType.BigInt).Value = (TextBox4.Text).Trim
cmd.Parameters.Add("@pay", SqlDbType.BigInt).Value = (TextBox5.Text).Trim
cmd.Parameters.Add("@remaind", SqlDbType.BigInt).Value = (TextBox6.Text).Trim
Else
cmd.Parameters.Add("@allsum", SqlDbType.BigInt).Value = 0
cmd.Parameters.Add("@pay", SqlDbType.BigInt).Value = (TextBox5.Text).Trim
cmd.Parameters.Add("@remaind", SqlDbType.BigInt).Value = (TextBox6.Text).Trim
End If
cmd.ExecuteNonQuery()
'End If
con.Close()
MsgBox("success")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
End Sub
End Class
در کد بالا وقتی ما می خوایم دستور زیر رو که در سورس موجود هست رو اجرا کنیم تا بتونیم اطاعات رو ثبت کنیم برنامه Error میده:

Con.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)
ممنون میشم اگه زود جواب بدید...:لبخند::قلب:

بهنام بهمنی
دوشنبه 30 شهریور 1388, 09:23 صبح
ايرادتان احتمالا به خاطر remote connection است, لينک زير راه حل اين موضوع است, اما به طور کلي ايرادتان بسيار عمومي است (مثلا قطع بودن ارتباط هم همين مشکل را ايجاد ميکند)

http://support.microsoft.com/kb/914277