问题描述:

I have data in a GridView and I need to copy it to a table in a database.

Let's say my first GridView is GridView1; GridView1's database source is subjects_enrolled. After I'm done using GridView1 it's data needs to clear and in addition, clear the data in the source table.

Note: The primary purpose of GridView1 is for displaying data for printing a page, but I want to save or transfer all data in GridView1 to a database table before losing the GridView1 data.

Here is my code so far:

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not Me.IsPostBack Then

Dim constr As String = ConfigurationManager.ConnectionStrings("mcbdatabseConnectionString").ConnectionString

Using con As New MySqlConnection(constr)

Using cmd As New MySqlCommand("SELECT Subject_ID, Subject, Units FROM mcbdatabse.subject_enrolled")

Using sda As New MySqlDataAdapter()

cmd.Connection = con

sda.SelectCommand = cmd

Using dt As New DataTable()

sda.Fill(dt)

GridView1.DataSource = dt

GridView1.DataBind()

End Using

End Using

End Using

End Using

End If

txtDate.Text = Date.Today.ToString("yyyy-MM-dd")

End Sub

网友答案:

When you doing some unnormal activity about databases you can be sure that you are in a bad plan. So in your case i can not understand why you want to do this. You have better ways to do this, you can put all data in one table and add a column named 'enrolld' to filter data as you want and on user click you can delete or enrol the record.
But if you want to continue this way, you we have some events in gridview that can help:

RowDeleting, RowUpdating

If a row affected the related event fires and you can get the id of the record:

protected sub GridView1_RowDeleting(byval sender as object, byval e as GridViewDeleteEventArgs)
    {
        dim a as object = e.Keys["Id"]
    'or
        dim a as object = e.Keys[0]
    }

To access the id of your record and do what you want with this.

相关阅读:
Top