在 VB.net 中询问我的语法

Posted

技术标签:

【中文标题】在 VB.net 中询问我的语法【英文标题】:Asking about my syntax in VB.net 【发布时间】:2014-12-20 05:04:26 【问题描述】:

我的项目中的保存按钮无法正常工作,我总是得到“您的数据尚未完成”的信息,这是我的语法:

Dim tambah As String = "insert into Anggota values('" & Tno.Text & "','" & Tnis.Text & "','" & Tnama.Text & "','" & Tkelas.Text & "','" & CBjk.Text & "','" & Tt4lahir.Text & "','" & ttgllahir.Text & "')"
    Call koneksi() 
    cmd = New OleDbCommand(tambah, conn)
    Try
        cmd.ExecuteNonQuery()
        MsgBox("the data has been saved", MsgBoxStyle.Information, "INFORMASI")
        Call kosongkan()
    Catch ex As Exception
        MsgBox("your data is not yet complete!!!!", MsgBoxStyle.Information, "INFORMASI")
    End Try
    Call tampilkan()
    Tnis.Focus()

这是我的连接

Public Sub koneksi()
        str = "provider=microsoft.jet.oledb.4.0;data source=Database.mdb"
        conn = New OleDbConnection(str)
        ds = New DataSet
        If conn.State = ConnectionState.Closed Then
            conn.Open()
        End If
    End Sub

【问题讨论】:

***.com/questions/542510/… 【参考方案1】:

要确定实际错误是什么,您应该打印出异常消息:

Try
     .....
Catch ex As Exception
    MessageBox.Show("An exception occurred:" & Environment.NewLine & ex.Message)
End Try

这通常是权限或不正确的连接字符串,或 SQL 命令中的语法错误(这很可能是因为您正在连接值。不要!使用参数化查询)

顺便说一句:作为一种良好做法,您不应该捕获并吞下异常,除非您以某种明智的方式处理它们。至少你应该记录并重新抛出。 另外:您应该捕获特定的异常(在本例中为 SqlException

Exception Handling

Best Practices for Exceptions

[另外:我注意到你在上一个问题中被警告过 SQL 注入攻击,而不是连接值:Syntax error in INSERT INTO statement (vb.net)

【讨论】:

以上是关于在 VB.net 中询问我的语法的主要内容,如果未能解决你的问题,请参考以下文章

SQL插入语句语法错误VB.net

在 sql 语法中出现错误,vb.net 中的 mysql update 语句

SQL 新手并遇到语法问题 (VB.NET)

使用 VB.NET 应用程序手动创建 MySQL 触发器(语法错误)

VB 函数调用中参数的正确语法

语法:VB.NET 子程序中的“Exit Sub”或“Return”