如何将语法sql access更改为phpmyadmin sql/sql server

a0zr77ik  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(323)


信息错误:
sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得正确的语法,使用near')-tanggalpjm)+1作为lmpinjam,iff(lmpinjam>5,(lmpinjam-5)*500,0)作为denda from t'在第1行
这是我的数据库:


这个语法的工作原理:1。在组合框中选择成员编号,或在组合框中键入成员编号(第二个网格2上将显示借来的书本)。在第一列的第一个网格中键入该书的代码(如b001、b002、b003等),如果该文件从未被借过,则会显示一条消息,说明该书从未被借过。三。取消某些图书代码的退货可以通过按相关图书行“4”中的esc键来完成。保存前先填写“付款金额”
denda=付款
它在datagridview1上的错误是因为这个脚本使用sql访问,而我的vb使用phpmyadmin作为数据库,那么如何将这个语法更改为phpmyadmin sql呢?

("Select distinct tbBuku.NomorBK,tbdetailpjm.Nomorpjm,Judul,JumlahBK,tanggalpjm, (Date()-Tanggalpjm)+1 As Lmpinjam, IFF (LMPINJAM>5,(LMPINJAM-5)*500,0) AS DENDA From tbAnggota,tbPinjam,tbBuku,tbDetailpjm Where tbBuku.NomorBK=tbDetailpjm.NomorBK And tbPinjam.Nomorpjm=tbDetailpjm.Nomorpjm And tbAnggota.Nomoragt=Pinjam.Nomoragt And tbAnggota.Nomoragt='" & CmbNomoragt.Text & "' AND tbDETAILPJM.NomorBK='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' AND DETAILPJM.JUMLAHBK>0", conn)

完整脚本:

Imports MySql.Data.MySqlClient
Imports System.Math

Private Sub DgLaporan_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgLaporan.CellEndEdit
    If e.ColumnIndex = 0 Then
        CMD = New MySqlCommand("select NomorBK from tbanggota,tbpinjam,tbdetailpjm where NomorBK ='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' and tbpinjam.nomorpjm=tbdetailpjm.nomorpjm and tbanggota.nomoragt=tbpinjam.nomoragt and tbanggota.nomoragt='" & CmbNomoragt.Text & "' AND tbdetailpjm.JUMLAHBK>0", conn)
        RD = CMD.ExecuteReader
        RD.Read()
        If Not RD.HasRows Then
            MsgBox(" " & LblNamaAgt.Text & " tidak meminjam kode Buku " & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "")
            Call HapusBaris()
            Exit Sub
            RD.Close()
        End If
        RD.Close()
        CMD = New MySqlCommand("Select distinct tbBuku.NomorBK,tbdetailpjm.Nomorpjm,Judul,JumlahBK,tanggalpjm, (Date()-Tanggalpjm)+1 As Lmpinjam, IFF (LMPINJAM>5,(LMPINJAM-5)*500,0) AS DENDA From tbAnggota,tbPinjam,tbBuku,tbDetailpjm Where tbBuku.NomorBK=tbDetailpjm.NomorBK And tbPinjam.Nomorpjm=tbDetailpjm.Nomorpjm And tbAnggota.Nomoragt=Pinjam.Nomoragt And tbAnggota.Nomoragt='" & CmbNomoragt.Text & "' AND tbDETAILPJM.NomorBK='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' AND DETAILPJM.JUMLAHBK>0", conn)
        RD = CMD.ExecuteReader
        RD.Read()
        If RD.HasRows Then
            DgLaporan.Rows(e.RowIndex).Cells(1).Value = RD.Item(1)
            DgLaporan.Rows(e.RowIndex).Cells(2).Value = RD.Item(2)
            DgLaporan.Rows(e.RowIndex).Cells(3).Value = RD.Item(3)
            DgLaporan.Rows(e.RowIndex).Cells(4).Value = RD.Item(4)
            DgLaporan.Rows(e.RowIndex).Cells(5).Value = RD.Item(5)
            DgLaporan.Rows(e.RowIndex).Cells(6).Value = RD.Item(6)
            DgLaporan.CurrentCell = DgLaporan.Rows(e.RowIndex).Cells(0)
            Call TotalKEMBALI()
            Call TotalDENDA()
            Call pembayaran()
        Else
            MsgBox(" " & LblNamaAgt.Text & "  tidak meminjam kode Buku " & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "")
        End If
    End If
    RD.Close()
End Sub
v8wbuo2f

v8wbuo2f1#

这个 DATE 函数用于从字符串中提取日期,因此它希望您向它传递一个参数。
如果你想知道今天的日期 CURRENT_DATE 改为函数:

(CURRENT_DATE()-Tanggalpjm)+1

此外,您的代码容易受到sql注入的攻击。多年来,人们一直不鼓励使用常规的字符串连接来构建查询。研究如何使用sql参数。

相关问题