簡體   English   中英

'System.Data.SqlClient.SqlException'

[英]'System.Data.SqlClient.SqlException'

我正在編寫一個代碼,可以對存儲在數據庫中的一定數量的實驗點進行插值或曲線擬合。 此應用程序的一部分允許用戶向數據添加新點。

這是代碼的一部分:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim connection As SqlConnection = New SqlConnection()
    connection.ConnectionString = "Data Source=.;Initial Catalog = Newtcf;Integrated Security=True"
    Dim sqlq As String = "Insert into Points (x-axis,y-axis,weight) Values (@x-axis,@y-axis,@weight)"
    Dim cmd As New SqlCommand(sqlq, connection)

    cmd.Parameters.Add("@x-axis", SqlDbType.Float).Value = TextBox1.Text
    cmd.Parameters.Add("@y-axis", SqlDbType.Float).Value = TextBox2.Text
    cmd.Parameters.Add("@weight", SqlDbType.Float).Value = TextBox3.Text

    connection.Open()
    cmd.ExecuteNonQuery()
    cmd.Parameters.Clear()
    connection.Close()
End Sub

我收到以下錯誤:

System.Data.dll中發生了類型為“System.Data.SqlClient.SqlException”的未處理異常

附加信息:' - '附近的語法不正確。

' - '附近的語法不正確。

和行:

cmd.ExecuteNonQuery()

以綠色突出顯示。 老實說,我不知道問題是什么,或者“例外”是什么意思。 我們的導師幫助不大。 我真的很感激一些澄清。

這是因為特殊字符'-' 你應該分隔列名稱。 改成:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim connection As SqlConnection = New SqlConnection()
    connection.ConnectionString = "Data Source=.;Initial Catalog = Newtcf;Integrated Security=True"
    Dim sqlq As String = "Insert into Points ([x-axis],[y-axis],[weight]) Values (@x,@y,@w)"
    Dim cmd As New SqlCommand(sqlq, connection)

    cmd.Parameters.Add("@x", SqlDbType.Float).Value = TextBox1.Text
    cmd.Parameters.Add("@y", SqlDbType.Float).Value = TextBox2.Text
    cmd.Parameters.Add("@w", SqlDbType.Float).Value = TextBox3.Text
    connection.Open()
    cmd.ExecuteNonQuery()
    cmd.Parameters.Clear()
    connection.Close()
End Sub

在這里查找詳細信息https://technet.microsoft.com/en-us/library/ms176027%28v=sql.105%29.aspx

如果列名稱中包含連字符,則列必須用方括號括起來,即x軸變為[x軸]。

如果您運行查詢

SELECT x-axis 
FROM BLAH 

它實際上是試圖從列x減去列axis

我也會避免在@變量中使用非字母數字字符,除非它是下划線。

嘗試這個:

Dim sqlq As String = "Insert into Points ([x-axis],[y-axis],[weight]) Values (@x_axis,@y_axis,@weight)"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM