Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Перемещение записи из одной таблицы в другую через datagridview

Автор вопроса: Charles ForbesОтветов: 2

Я хочу иметь возможность щелкнуть запись в моем представлении таблицы данных, в которой выбраны все записи из tbl_requested-shifts, и при нажатии кнопки эта запись удаляется из tbl_requested_shifts и перемещается в tbl_shifts, может ли кто-нибудь помочь мне с SQL для этой задачи?

Кстати, я кодирую в vb.net 2010.

  • вам нужно предоставить гораздо больше подробностей о структуре таблицы и коде, который вы пробовали. SQL будет в основном выглядеть как INSERT INTO tbl_shifts (col1, col2, col3) select col1, col2, col3 FROM tbl_requested_shifts cjb110 30.04.2015

sqldatagridview

Ответы

Ответ 1 · Topman

я не проверял, но думаю, что это сработает.

Всякий раз, когда в DataGridView выбрана строка, извлекайте из нее значение столбца первичного ключа. И давайте предположим, что 1-й столбец является столбцом первичного ключа и имеет целочисленный тип.

Я поместил код в событие CellClick. Вы можете использовать событие CellContentClick, но я считаю CellClick более надежным. Убедитесь, что для свойства MultiSelect элемента DataGridView установлено значение false.

Dim value as Integer

 Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Try
            value = DataGridView1.Rows(e.RowIndex).Cells(0).Value
        Catch ex As Exception

        End Try
 End Sub

Теперь в событии нажатия кнопки. Создайте группу запросов, как показано ниже.

INSERT INTO tbl_shifts (col1, col2,col3,col4)
SELECT col1,col2,col3,col4
FROM tbl_requested_shifts
WHERE col1 =value;
DELETE FROM tbl_requested_shifts
WHERE col1=value;

Попытайся. Спасибо.

ДОПОЛНИТЕЛЬНО

objCommand = New SqlCommand
objCommand.CommandText = "INSERT INTO tbl_shifts (col1, col2,col3,col4) " & _
"SELECT col1,col2,col3,col4 " & _
"FROM tbl_requested_shifts " & _
"WHERE col1 =" & value & ";" & _
"DELETE FROM tbl_requested_shifts " & _
"WHERE col1=" & value & ";"

 Try
        <your sql connection object>.Open()
        command.Connection = <your sql connection object>
        command.ExecuteNonQuery()

        <your sql connection object>.Close()
Catch ex As Exception
        MsgBox(ex.Message)
        <your sql connection object>.Close()
End Try

Приведенный выше оператор T-SQL добавит строку в одну таблицу и удалит строку из другой таблицы. И убедитесь, что вы перезагрузили представление datagridview после выполнения этого кода. Спасибо.

Ответ 2 · Thameem Ashik

2 Ответ

Создайте отдельную функцию для удаления записи из таблицы1 и вызовите ее в событии button_click после перемещения записи из таблицы1 в таблицу2, как показано ниже. Надеюсь, это сработает...

 Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click

    Try
         Call Connect()

         STRSQL = "Insert into table2 select * from table1 where" & _
                  "id=" & TextBox1.Text & ""
         myCmd = New OleDbCommand(STRSQL, myConn)
         myCmd.ExecuteNonQuery()
         myConn.Close()

         Deletedata()

    Catch ex As Exception

    End Try
End Sub


Private Sub Deletedata()
    Call Connect()

    STRSQL = "delete from table1 where ID=" & TextBox1.Text & ""
    myCmd = New OleDbCommand(STRSQL, myConn)
    'myConn.Open()

    Dim da As New OleDbDataAdapter(myCmd)
    Dim dt As New DataTable
    Try
        da.Fill(dt)
        myCmd.ExecuteNonQuery()
        myConn.Close()


    Catch ex As Exception
    End Try

End Sub

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы