首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据视图中的布尔数据类型数据插入Server数据库

将数据视图中的布尔数据类型数据插入Server数据库
EN

Stack Overflow用户
提问于 2019-12-17 06:19:04
回答 1查看 185关注 0票数 0

如何将数据视图中的布尔型数据插入Server?取消选中datagridview中的复选框并插入数据时:

类型DBNull到类型字符串的错误转换无效。

代码语言:javascript
复制
Dim index As Integer
Dim selectedRow = Quantum_GR.DataGridView1.Rows(index)

Try
    For I = 0 To Quantum_GR.DataGridView1.Rows.Count - 2
        'Dim GRNo As String
        Dim StockCode As String = Quantum_GR.DataGridView1.Rows(I).Cells("STKID").Value
        Dim StockName As String = Quantum_GR.DataGridView1.Rows(I).Cells("STKNAME").Value
        Dim GRQuantity As Double = Quantum_GR.DataGridView1.Rows(I).Cells("GRQTY").Value
        Dim StockCost As Double = Quantum_GR.DataGridView1.Rows(I).Cells("COST").Value
        Dim BatchControl As Boolean = Quantum_GR.DataGridView1.Rows(I).Cells("BATCHCTR").Value
        Dim StockBatchID As String = Quantum_GR.DataGridView1.Rows(I).Cells("BATCHID").Value
        Dim StockExpDate As Date = Quantum_GR.DataGridView1.Rows(I).Cells("EXPDATE").Value
        Dim StockTaxCode As String = Quantum_GR.DataGridView1.Rows(I).Cells("TAXCODE").Value
        Dim StockTaxAmount As Double = Quantum_GR.DataGridView1.Rows(I).Cells("TAXAMT").Value



        sqlcon.Open()
        If StockCode <> "" Then
            Dim grquery As String = "INSERT INTO GRT(GRNO,STKID,STKNAME,GRQTY,COST,BATCHCTR,BATCHID,EXPDATE,TAXCODE,TAXAMT) VALUES ('" & GRID & "','" & StockCode & "','" & StockName & "'," & GRQuantity & "," & StockCost & ",'" & BatchControl & "','" & StockBatchID & "','" & StockExpDate & "','" & StockTaxCode & "'," & StockTaxAmount & ")"
            Dim sqlcmd As New SqlCommand(grquery, sqlcon)
            sqlcmd.ExecuteReader()
            sqlcmd.Dispose()
        End If
        sqlcon.Close()

        sqlcon.Open()
        SQLcmd = New SqlCommand("UPDATE GRT SET TCOST=ROUND(GRQTY*COST,2)", sqlcon)
        sqlda = New SqlDataAdapter(SQLcmd)
        sqldataset = New DataSet
        sqlda.Fill(sqldataset)
        sqlcon.Close()
    Next
Catch ex As Exception
    MsgBox(ex.Message)
End Try
EN

回答 1

Stack Overflow用户

发布于 2019-12-17 06:32:22

试试这段代码。

代码语言:javascript
复制
  Dim index As Integer
        Dim selectedRow = DataGridView1.Rows(index)

        Try
            For i = 0 To DataGridView1.Rows.Count - 2
                'Dim GRNo As String
                Dim StockCode As String = DataGridView1.Rows(i).Cells("STKID").Value
                Dim StockName As String = DataGridView1.Rows(i).Cells("STKNAME").Value
                Dim GRQuantity As Double = DataGridView1.Rows(i).Cells("GRQTY").Value
                Dim StockCost As Double = DataGridView1.Rows(i).Cells("COST").Value
                Dim BatchControl As Boolean = Convert.ToBoolean(DataGridView1.Rows(i).Cells("BATCHCTR").Value)
                Dim StockBatchID As String = DataGridView1.Rows(i).Cells("BATCHID").Value
                Dim StockExpDate As Date = DataGridView1.Rows(i).Cells("EXPDATE").Value
                Dim StockTaxCode As String = DataGridView1.Rows(i).Cells("TAXCODE").Value
                Dim StockTaxAmount As Double = DataGridView1.Rows(i).Cells("TAXAMT").Value



                sqlcon.Open()
                If StockCode <> "" Then
                    Dim grquery As String = "INSERT INTO GRT(GRNO,STKID,STKNAME,GRQTY,COST,BATCHCTR,BATCHID,EXPDATE,TAXCODE,TAXAMT) VALUES ('" & GRID & "',@StockCode,@StockName,@GRQuantity,@StockCost,@BatchControl,@StockBatchID,@StockExpDate,@StockTaxCode," &  & ")"
                    Dim sqlparams(8) As SqlClient.SqlParameter
                    sqlparams(0) = New SqlClient.SqlParameter("@StockCode", SqlDbType.VarChar)
                    sqlparams(0).Value = CType(StockCode, String)
                    sqlparams(1) = New SqlClient.SqlParameter("@StockName", SqlDbType.VarChar)
                    sqlparams(1).Value = CType(StockName, String)
                    sqlparams(2) = New SqlClient.SqlParameter("@GRQuantity", SqlDbType.Float)
                    sqlparams(2).Value = CType(GRQuantity, Double)
                    sqlparams(3) = New SqlClient.SqlParameter("@StockCost", SqlDbType.Float)
                    sqlparams(3).Value = CType(StockCost, Double)
                    sqlparams(4) = New SqlClient.SqlParameter("@BatchControl", SqlDbType.Bit)
                    sqlparams(4).Value = CType(BatchControl, Boolean)
                    sqlparams(5) = New SqlClient.SqlParameter("@StockBatchID", SqlDbType.VarChar)
                    sqlparams(5).Value = CType(StockBatchID, String)

                    sqlparams(6) = New SqlClient.SqlParameter("@StockExpDate", SqlDbType.Date)
                    sqlparams(6).Value = CType(StockExpDate, Date)
                    sqlparams(7) = New SqlClient.SqlParameter("@StockTaxCode", SqlDbType.VarChar)
                    sqlparams(7).Value = CType(StockTaxCode, String)
                    sqlparams(8) = New SqlClient.SqlParameter("@StockTaxAmount", SqlDbType.Float)
                    sqlparams(8).Value = CType(StockTaxAmount, Double)
                    Dim sqlcmd As New SqlCommand(grquery, sqlcon)

                    sqlcmd.ExecuteNonQuery()
                    sqlcmd.Dispose()
                End If
                'sqlcon.Close()

                'sqlcon.Open()
                SQLcmd = New SqlCommand("UPDATE GRT SET TCOST=ROUND(GRQTY*COST,2)", sqlcon)
                sqlcmd.ExecuteNonQuery()
                sqlcon.Close()
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59368563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档