信息错误:
您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在')-Tanggalpjm附近使用正确的语法.1作为Lmpinjam,IFF(LMPINJAM> 5,(LMPINJAM-5)* 500,0)AS DENDA来自第1行的t'
这是我的数据库:
该语法的工作原理如下:1 . 在组合框中选择成员编号或在Combobox中键入成员编号(将出现在第二个网格上借阅的图书2.输入图书的代码(例如B001,B002,B003等) . )在第一列的第一个网格上,如果文件从未被借用过,则会显示一条消息,表明书籍从未被借用过.3 . 按相关书籍中的ESC可以取消某些书籍代码的退货行“4.保存之前,先填写”付款金额“
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
1 回答
DATE
函数用于从字符串中提取日期,因此它希望您将参数传递给它 .如果你想获得今天的日期,请改用
CURRENT_DATE
函数:此外,您的代码易受SQL注入攻击 . 多年来一直不鼓励使用常规字符串连接来构建查询 . 看看如何使用SQL Parameters .