如何将数据视图中的布尔型数据插入Server?取消选中datagridview中的复选框并插入数据时:
类型DBNull到类型字符串的错误转换无效。
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发布于 2019-12-17 06:32:22
试试这段代码。
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 Tryhttps://stackoverflow.com/questions/59368563
复制相似问题