Function UpdateTableRow()
sqlLink.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\will\Documents\Computing\ComputingProjectDatabase.accdb';"
Try
Dim sqlOrder As New OleDbCommand
If sqlLink.State = ConnectionState.Closed Then
sqlLink.Open()
End If
' Creating the command and its parameter here before entering the loop to avoid a continue'
' create and destroy pattern for the OleDbCommand'
sqlOrder.CommandText = "UPDATE StockSystem SET [Stock Price] =?, [Stock Size] =?, [Stock Quantity] =?, [Stock Category] =?, WHERE [Stock ID] =?"
sqlOrder.Connection = sqlLink
sqlOrder.Parameters.AddWithValue("@StockCategory", 0)
sqlOrder.Parameters.AddWithValue("@StockQuantity", 0)
sqlOrder.Parameters.AddWithValue("@StockSize", 0)
sqlOrder.Parameters.AddWithValue("@StockPrice", 0)
sqlOrder.Parameters.AddWithValue("@row", 0)
Dim rows = DataGridView1.Rows
For Each row In rows
sqlOrder.Parameters("@row").Value = row.Cells(0).Value
sqlOrder.Parameters("@StockPrice").Value = row.Cells(1).Value
sqlOrder.Parameters("@StockSize").Value = row.Cells(2).Value
sqlOrder.Parameters("@StockQuantity").Value = row.Cells(3).Value
sqlOrder.Parameters("@StockCategory").Value = row.Cells(4).Value
sqlOrder.ExecuteNonQuery()
Next
MsgBox("Data Updated.")
'Problem with the update parameters, works for DELETE FUNCTION, needs to be changed to fit an UPDATE FUNCTION
Catch ex As Exception
MsgBox(ex.Message)
Finally
sqlLink.Close()
End Try
Return DataGridView1.SelectedRows
DataGridView1.Refresh()
End Function
ねえ、ご覧のとおり、ここに素敵なコードがあります。ただ、100%うまくいくわけではありません。私は言われ続けSyntax Error in UPDATE statement
ます。パラメータがなくてもコードに問題がない場合(確かに、パラメータがないとまったく機能しません)、 update ステートメントが正しいと確信しています。私はこれで約1週間立ち往生しているので、どんな助けでも素晴らしいでしょう >.<
2 つ目のエラーは、Access を使用しているため、表の下部に「空白」の行があることです。私は (row - 1) のようなものがうまくいくと思っていました.VB 2010はそれをまったく好きではありません.
私が言ったように、どんな助けも素晴らしいでしょう。