SQLite错误提供给命令vb.net的参数不足 [英] SQLite error Insufficient parameters supplied to the command vb.net

查看:198
本文介绍了SQLite错误提供给命令vb.net的参数不足的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

salam,我收到此错误(SQLite错误,没有为命令提供参数)在此代码中,请帮助我

如果CheckBox1.选中
            Dim query1 As String =从SS_paymon选择Payid,而paytid ='" & idtext.Text& "'"

            将Dim命令作为新的SQLiteCommand(query1,objConn)
            '将昏暗参数设置为新的SQLiteParameter()
            昏暗哈哈As DataTable = New DataTable()
            昏暗的适配器作为新的SQLiteDataAdapter(命令)
            适配器.填充(哈哈)
            如果haha.Rows.Count = 0则
                Dim SQLstr3 As String =在SS_paymon中插入(payprice,paybuyer,paydate,paytid)VALUES(@ payprice,@ paybuyer,@ paydate,@ paytid)"
                昏暗的cmdb3作为新的SQLiteCommand(SQLstr2,objConn)
                cmdb3.Parameters.AddWithValue("@ payprice",TextBox5.Text)
                cmdb3.Parameters.AddWithValue("@ paybuyer",bid.Text)
                cmdb3.Parameters.AddWithValue("@ paydate",TextBox4.Text)
                cmdb3.Parameters.AddWithValue("@ paytid",idtext.Text)
                cmdb3.ExecuteNonQuery()
                cmdb3.Dispose()
            别的
                Dim SQLstr3 As String ="UPDATE SS_paymon SET payprice = @ payprice,paybuyer = @ paybuyer,paydate = @ paydate,而paytid = @ paydate"
                昏暗的cmd3作为新的SQLiteCommand(SQLstr2,objConn)
                cmd3.Parameters.AddWithValue("@ payprice",TextBox5.Text)
                cmd3.Parameters.AddWithValue("@ paybuyer",bid.Text)
                cmd3.Parameters.AddWithValue("@ paydate",TextBox4.Text)
                cmd3.Parameters.AddWithValue("@ paytid",idtext.Text)
                cmd3.ExecuteNonQuery()
                cmd3.Dispose()
            万一
            adapter.Dispose()
        别的
            Dim query1 As String =从SS_paymon选择Payid,而paytid ='" & idtext.Text& "'"
            将Dim命令作为新的SQLiteCommand(query1,objConn)
            昏暗哈哈As DataTable = New DataTable()
            昏暗的适配器作为新的SQLiteDataAdapter(命令)
            适配器.填充(哈哈)
            如果haha.Rows.Count<> 0然后
                Dim SQLstr3 As String =从SS_paymon删除,其中paytid = @ paytid"
                昏暗的cmdx1作为新的SQLiteCommand(SQLstr2,objConn)
                cmdx1.Parameters.AddWithValue("@ paytid",idtext.Text)
                cmdx1.ExecuteNonQuery()
                cmdx1.Dispose()
            万一

        如果结束


我在所有ExecuteNonQuery()中都收到此错误.

我搜索有什么问题吗,但是我找不到此代码

这是一个更新按钮;如果选中了复选框(PAID),则应检查付款表中是否有记录,如果有,则进行更新;否则,请添加新记录;如果未选中,则应检查是否存在付款记录,应将其删除.


解决方案

您正在使用名为SQLstr3的变量定义查询字符串,但会将名为SQLstr2的变量传递给每个命令对象. /p>


salam i get this error(SQLite error Insufficient parameters supplied to the command) in this code please help me

If CheckBox1.Checked Then
            Dim query1 As String = "Select payid FROM SS_paymon WHERE paytid = '" & idtext.Text & "'"

            Dim command As New SQLiteCommand(query1, objConn)
            'Dim param As New SQLiteParameter()
            Dim haha As DataTable = New DataTable()
            Dim adapter As New SQLiteDataAdapter(command)
            adapter.Fill(haha)
            If haha.Rows.Count = 0 Then
                Dim SQLstr3 As String = "INSERT INTO SS_paymon (payprice, paybuyer, paydate,paytid) VALUES(@payprice, @paybuyer, @paydate,@paytid)"
                Dim cmdb3 As New SQLiteCommand(SQLstr2, objConn)
                cmdb3.Parameters.AddWithValue("@payprice", TextBox5.Text)
                cmdb3.Parameters.AddWithValue("@paybuyer", bid.Text)
                cmdb3.Parameters.AddWithValue("@paydate", TextBox4.Text)
                cmdb3.Parameters.AddWithValue("@paytid", idtext.Text)
                cmdb3.ExecuteNonQuery()
                cmdb3.Dispose()
            Else
                Dim SQLstr3 As String = "UPDATE SS_paymon SET payprice=@payprice, paybuyer=@paybuyer, paydate=@paydate WHERE paytid=@paydate"
                Dim cmd3 As New SQLiteCommand(SQLstr2, objConn)
                cmd3.Parameters.AddWithValue("@payprice", TextBox5.Text)
                cmd3.Parameters.AddWithValue("@paybuyer", bid.Text)
                cmd3.Parameters.AddWithValue("@paydate", TextBox4.Text)
                cmd3.Parameters.AddWithValue("@paytid", idtext.Text)
                cmd3.ExecuteNonQuery()
                cmd3.Dispose()
            End If
            adapter.Dispose()
        Else
            Dim query1 As String = "Select payid FROM SS_paymon WHERE paytid = '" & idtext.Text & "'"
            Dim command As New SQLiteCommand(query1, objConn)
            Dim haha As DataTable = New DataTable()
            Dim adapter As New SQLiteDataAdapter(command)
            adapter.Fill(haha)
            If haha.Rows.Count <> 0 Then
                Dim SQLstr3 As String = "DELETE FROM SS_paymon where paytid=@paytid"
                Dim cmdx1 As New SQLiteCommand(SQLstr2, objConn)
                cmdx1.Parameters.AddWithValue("@paytid", idtext.Text)
                cmdx1.ExecuteNonQuery()
                cmdx1.Dispose()
            End If

        End If


i get this error in all ExecuteNonQuery().

is there any problem i searchedbut i could not find anything for this code

it's a update button; if check box (PAID) is checked it should check if any record from payment table if it has something so update it else add new one if check not checked it's should check if any record exist for the payment it should delete it.


解决方案

You are defining your query strings in a variable named SQLstr3, but passing a variable named SQLstr2 to each of the command objects.


这篇关于SQLite错误提供给命令vb.net的参数不足的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆