我有一个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
感谢
答案 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设计器中选择您的列,然后单击“将此列转换为模板字段”按钮。然后,您将拥有一个可以命名并从代码隐藏中获取的文本框。