Gridview数据转化为参数

时间:2014-01-23 15:44:58

标签: asp.net gridview

我有一个gridview,它将用于更新mysqldatabase,我只想更新1个字段,
除了从gridview上的输入文本框中获取数据之外,它都有效。 在下面的代码中,strdocumentnumber = 77500我希望77500来自gridview中更新行的绘图编号列字段,而我想要更新的值是strAccess_Code也来自gridview代码列。 如果对值进行硬编码,这一切都有效。

    Private Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
    '' do update..
    Dim strdocumentNumber As String = 77500
    Dim strAccess_Code As String = 8

    dbConn = New MySqlConnection("Data Source=localhost;password=****;user id=root;database=drawlib;")
    sql = "UPDATE core " & vbCrLf & _
          "SET  F6 ='" & strAccess_Code & "'" & vbCrLf & _
           "WHERE F1 = '" & strdocumentNumber & "'"

    Try
        dbConn.Open()
        dbcomm = New MySqlCommand(sql, dbConn)
        dbread = dbcomm.ExecuteReader()
        dbread.Close()
    Catch myerror As MySqlException
        MsgBox("Error in Saving Data: " & myerror.Message)
        'dbread.Close()
        Exit Sub
    End Try

    GridView1.EditIndex = -1
    GridView1.DataSource = SqlDataSource2
    GridView1.DataBind()
End Sub

感谢

1 个答案:

答案 0 :(得分:0)

我认为您必须在代码隐藏中创建一个文本框,以便从gridview文本框中指定一个值:

修改的 在从文本框中提取值之前,您可能需要找到正确的行。试试这个

Dim row As GridViewRow = GridView1.Rows(e.RowIndex)

If row.RowType = DataControlRowType.DataRow Then
   Dim textbox As TextBox = CType(row.FindControl("nameofyourgridview textbox here"),TextBox)
   strdocumentNumber = textbox.Text
End If

/编辑

在Gridview中,您需要将BoundField更改为TemplateField。有关示例,请参阅here

使用设计器进行转换(请参阅上面的链接)或在gridview设计器中选择您的列,然后单击“将此列转换为模板字段”按钮。然后,您将拥有一个可以命名并从代码隐藏中获取的文本框。