Här laddar jag in lite information i en listview, och när jag klickar på en knapp så fylls, fyra textrutor med infon som finns i listviewn. Det jag vill är kod för att göra en uppdatering av en arbetare. Behöver kod för tabort och lägga Till också. Jag kan ju börja lite. För att uppdatera kan du göra något sådant här: när man använder update verkar det som man använder myCommand.ExecuteNonQuery() Du ska använda den då också. Insert och delete är också frågor som inte returnerar någon data. ok, koden klagar på så här ser mitt ut nu Ja, antagligen är det något fel på sql-frågan. Egentligen skall man alltid lägga felbenägen kod inom ett try-catch-block för att fånga fel. Prova detta: Du har missat tabellnamnet i delete-frågan."stort" databas problem
Vet att det antagligen är mycket begärt, men hoppas någon kan hjälpa mig lite här.
Rätta gärna till min kod om jag gjort något "dumt" eller onödigt.
Som sagt otroligt tacksam för hjälp om detta.
<code>
Dim sConnection As String = "SÖKVÄG"
Dim objConn As New OleDb.OleDbConnection(sConnection)
Dim ProjektId As Integer
Dim objDSarbetare As New DataSet("arbetare")
Private Sub Arbetare_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' fyller en listview
Dim sSQL As String = "select arbetsid, arbetare, arbetstid, notering from arbete where ProjektId=" & ProjektId
Dim objDataAdapterArbetare As New OleDb.OleDbDataAdapter(sSQL, objConn)
Dim objTableArbetare As DataTable
objDataAdapterArbetare.Fill(objDSarbetare, "arbetare")
objTableArbetare = objDSarbetare.Tables("arbetare")
lvDim.Items.Clear()
lvDim.Columns.Clear()
lvDim.Columns.Add("Namn", 70, 0)
lvDim.Columns.Add("Tid", 40, 0)
lvDim.Columns.Add("Notering", 100, 0)
lvDim.Columns.Add("Arbetsid", 0, 0)
Dim materialsumma As Integer
Dim objRow As DataRow
For Each objRow In objTableArbetare.Rows
If (objRow.RowState <> DataRowState.Deleted) Then
Dim item As ListViewItem
item = lvDim.Items.Add(objRow.Item("arbetare").ToString())
item.SubItems.Add(objRow.Item("arbetstid").ToString())
item.SubItems.Add(objRow.Item("Notering").ToString())
item.SubItems.Add(objRow.Item("ArbetsId").ToString())
End If
Next
end sub
' koden när man väljer en Arbetare
Private Sub lvDim_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvDim.SelectedIndexChanged
If (lvDim.SelectedItems.Count > 0) Then
Dim lvItem = lvDim.SelectedItems(0)
txtNamn.Text = lvItem.SubItems(0).Text
txtArbetstid.Text = lvItem.subItems(1).text
txtNotering.Text = lvItem.SubItems(2).text
txtArbetsId.Text = lvItem.SubItems(3).text
End If
End Sub
</code>Sv: "stort" databas problem
<code>
Dim sConnection As String = "SÖKVÄG"
Dim objConn As New OleDb.OleDbConnection(sConnection)
Dim sSQL As String = "UPDATE arbete SET arbetare = '" & variabelnamn & "', arbetstid = '" & variabelnamn2 & "' WHERE arbetareid =" & ArbetareID
'Vet inte riktigt hur din databas ser ut, men du ser principen iaf.
Dim myCommand As New OleDbCommand(sSQL, sConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Close()
sConnection.Close()
</code>
För att ta bort eller lägga till en arbetare behöver du bara ändra sql-satsen.Sv: "stort" databas problem
vad använder man när man kör delete och insertSv: "stort" databas problem
Sv: "stort" databas problem
myCommand.ExecuteNonQuery()
men i så fall är det antagligen fel i SQL frågan, eller?Sv: "stort" databas problem
' kod för delete knappen
<code>
Dim arbetareid As Integer
arbetareid = Int(txtArbetsId.Text)
Dim objConn As New OleDb.OleDbConnection(sConnection)
Dim sSQL As String = "Delete * WHERE arbetsid = " & arbetareid
Dim myCommand As New OleDb.OleDbCommand(sSQL, objConn)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
objConn.Close()
</code>Sv: "stort" databas problem
<code>
Dim arbetareid As Integer
arbetareid = Int(txtArbetsId.Text)
Try
Dim objConn As New OleDb.OleDbConnection(sConnection)
Dim sSQL As String = "Delete * WHERE arbetsid = " & arbetareid
Dim myCommand As New OleDb.OleDbCommand(sSQL, objConn)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
objConn.Close()
Catch OleDbException AS e
MessageBox.Show(e.Message & "\n" & sSQL)
End Try
</code>Sv: "stort" databas problem
Dim sSQL As String = "Delete from arbete WHERE arbetsid = " & arbetareid