Member 13738315 Ответов: 2

Добавить значение из ошибки dataagridview


я должен вставить все значения строк из datagridview в базу данных sql server.Но первый ряд вставить не удалось.

это мое кодирование...
Dim conn As New SqlConnection
        Dim cmd As SqlCommand
        Dim sqlstring As String
        Dim paramdic As New Dictionary(Of String, Object)
        Dim row As DataGridViewRow = DataGridView1.Rows(0)

        conn.ConnectionString = "Data Source=ATHILINGAM\SQLEXPRESS;Initial Catalog=Attendance;Integrated Security=True;"

        conn.Open()

        paramdic.Add("@StaffId", "StaffId")
        paramdic.Add("@StaffName", "StaffName")
        sqlstring = "INSERT INTO dbo.Attend1(StaffId, StaffName,Status,Date) VALUES ('" & row.Cells(0).Value.ToString & "','" & row.Cells(1).Value.ToString & "','" & row.Cells(2).Value.ToString & "','" & DateTimePicker1.Text & "')"
        cmd = New SqlCommand(sqlstring, conn)
        For Each keyval As KeyValuePair(Of String, Object) In paramdic
            cmd.Parameters.AddWithValue(keyval.Key, keyval.Value)
        Next
        cmd.ExecuteNonQuery()
        cmd.Dispose()
        conn.Close()

какие ошибки в моем кодировании...пожалуйста, скажите мне...

Что я уже пробовал:

я пытаюсь вставить все строки значения datagridview в базу данных sql server

2 Ответов

Рейтинг:
2

RickZeeland

Я подозреваю, что ваш StaffId это автоматически ИДЕНТИЧНОСТЬ поле, которое вам не нужно передавать в вашем запросе, попробуйте обойтись без этого поля. Если у вас все еще есть проблемы, пожалуйста, создайте сценарий из вашей таблицы и ограничений и включите его в свой вопрос.
Кстати, для тестирования часто проще использовать SQL Server Management Studio или другой инструмент БД.

Если вы хотите узнать значение сгенерированного идентификатора, вы можете использовать OUTPUT, смотрите пример здесь:
c# - выполнить команду Insert и вернуть вставленный идентификатор в Sql - переполнение стека[^]


Member 13738315

Нет, у меня нет prb в Столбцах ,это строки. На самом деле первая строка datagridview может быть добавлена. Он вставляет первую строку( staffName, StaffId, Status и date). Но он не может вставить детали 2-й и другой строк...я думаю, что конец кодирования должен иметь циклические операторы..давайте расскажем об этом...

Member 13738315

нет, это не ПРБ с columns..it в строках...я думаю, что в конце кодирования должен быть оператор циклирования. он может вставлять сведения о первой строке(идентификатор персонала, имя сотрудника, статус, дата) в базу данных..Но не удается вставить второй и третий столбцы значений элемента управления datagridview...давайте расскажем об этом размещен цикл..заявление пожалуйста..

Рейтинг:
0

RickZeeland

Вам нужно использовать цикл для обхода всех строк, например:

For Each row As DataGridViewRow In DataGridView1.Rows
... your code here
Next
Кроме того, вы не используете свои параметры для параметризованный запрос правильный, см. пример здесь:
vb.net - как создать параметризованный SQL-запрос? Почему Я Должен Это Делать? - Переполнение Стека[^]


Member 13738315

ладно, братан...спасибо...что означает BOM? как это сделать?.