Рейтинг:
1
Richard MacCutchan
Ваш цикл полностью ошибочен; вы добавляете каждый элемент списка к одному и тому же имени параметра. И вы никогда не выполняете никаких команд, так что ничего не будет идти в базу данных. Ваш цикл должен взять каждый элемент списка по очереди, добавить его в набор параметров, как вы это делаете, а затем использовать ExecutNonQuery
(как уже сказал вам Мацей), чтобы отправить элемент в базу данных.
queryString = "Insert into ServiceRecords([Personnel]) Values(@Personnels)"
command = New OleDbCommand(queryString, connection)
For i As Integer = 0 To Me.ListBox1.Items.Count + 1
command.Parameters.AddWithValue("@Personnels", ListBox1.Items(i))
command.ExecuteNonQuery()
command.Parameters.Clear()
Next
Видеть
Объект oledbcommand.Метод ExecuteNonQuery (System.Data.Для oledb)[
^].
WinterPrison
Извините, что спрашиваю об этом Ричарда, но теперь я получаю эту часть ExecuteNonQuery (), но как я должен делать циклическую часть
For i As Integer = 0 To Me.ListBox1.Items.Count + 1
command.Parameters.AddWithValue("@Personnels", ListBox1.Items(i))
command.ExecuteNonQuery()
Next
Maciej Los
Ричард, небольшое примечание: команда также должна быть создана внутри цикла for-next из-за увеличения количества параметров на каждом шаге цикла.
Richard MacCutchan
Спасибо, я пропустил этот момент. Вы можете догадаться, что я не программист SQL.
Richard MacCutchan
Смотрите мой обновленный код. Вам следует изучить документацию по всем этим методам, так как я вполне могу сделать что-то не так.
Maciej Los
Всегда пожалуйста :)
WinterPrison
Извините, что спрашиваю об этом снова, но нужно ли мне ставить 2 команды.Метод executenonquery()?
потому что...
у меня есть еще один вопрос здесь
Try
connect()
connection.Open()
Dim queryString As String
queryString = "Insert into ServiceRecords([ServiceID],[ClientName],[Contact Person],[Address],[TimeStarted],[TimeEnded],[OpDate],[FloorDrain Quantity],[FloorDrain Clogged],[FloorDrain F/R]) Values(@SeriveID,@ClientName,[@Contact Person],@Address,@TimeStarted,@TimeEnded,@OpDate,[@FloorDrain Quantity],[@FloorDrain Clogged],[@FloorDrain F/R])"
command = New OleDbCommand(queryString, connection)
command.Parameters.Add(New OleDbParameter("ServiceID", CType(serviceIDText.Text, String)))
command.Parameters.Add(New OleDbParameter("ClientName", CType(clientNameText.Text, String)))
command.Parameters.Add(New OleDbParameter("Contact Person", CType(cPersonText.Text, String)))
command.Parameters.Add(New OleDbParameter("Address", CType(addressText.Text, String)))
command.Parameters.Add(New OleDbParameter("TimeStarted", CType(timeStartedText.Text, String)))
command.Parameters.Add(New OleDbParameter("TimeEnded", CType(timeEndedText.Text, String)))
command.Parameters.Add(New OleDbParameter("OpDate", CType(datePicker.Text, Date)))
command.Parameters.Add(New OleDbParameter("FloorDrain Quantity", CType(fldQuantityText.Text, String)))
command.Parameters.Add(New OleDbParameter("FloorDrain Clogged", CType(fldClcbox.CheckState, Boolean)))
command.Parameters.Add(New OleDbParameter("FloorDrain F/R", CType(fldFinRecText.Text, String)))
command.ExecuteNonQuery()
insertListBox()
MsgBox("Successfully Added!", MsgBoxStyle.Information)
и я вызываю fucntion insertListBox()
Private Sub insertListBox()
'This is code for listbox items to inserted to the database ew'
Try
Dim queryString As String
queryString = "Insert into ServiceRecords([Personnel]) Values(@Personnels)"
command = New OleDbCommand(queryString, connection)
For i As Integer = 0 To Me.ListBox1.Items.Count + 1
command.Parameters.AddWithValue("@Personnels", ListBox1.Items(i))
command.ExecuteNonQuery()
command.Parameters.Clear()
Next
Catch ex As Exception
End Try
End Sub
Richard MacCutchan
Да, каждый вызов ExecuteNonQuery связан только с текущей командой, для которой он вызывается. Вам также нужно каждый раз проверять возвращаемое значение, чтобы увидеть, удалось ли это сделать. Не показывайте сообщения типа - Успешно Добавлено!" когда вы понятия не имеете, удалось это или нет.
WinterPrison
Ребята спасибо за вашу помощь действительно он успешно вставлен в базу данных, но можно ли вставить его в одну строку в datagridview?
Richard MacCutchan
Извините, я не понял вопроса.
WinterPrison
Это моя новая проблема.
https://i.stack.imgur.com/9G6JB.png
и я получаю это
https://i.stack.imgur.com/Ucv50.png
Richard MacCutchan
Извините, но я понятия не имею, что это должно означать. Если у вас есть другая проблема, то, пожалуйста, откройте новый вопрос и предоставьте соответствующие детали.