我正在尝试从datagrid的每一行中取一列,并将其输入到SQL数据库中。有各种各样的问题/错误使其发挥作用。
这是最新版本:
For i = 0 to agentGridView.Rows.Count - 1
varAgt = agentGridView.Rows(i).Cells(1).Text
strSQL = "INSERT INTO tblAgentVisitAgents (VisitID, AgtID)" & _
" Values (" & _
VisitID.Text & "," & _
varAgt & ")"
strSQL = Utils.replaceChars(strSQL)
DAL.ExecNonQuery(strSQL, CommandType.Text)
Next
编辑:问题是我的单元格(1)是隐藏字段。当我看到它时,输入表格有效。当它被隐藏时,它不会输入任何东西,从而给我一个语法错误。有没有办法可以使用隐藏字段进行输入?
答案 0 :(得分:1)
您需要使用Text
代替Value
。喜欢以下。
varAgt = agentGridView.Rows(i).Cells(1).Text
代替varAgt = agentGridView.Rows(i).Cells(1).Value
但是如果你在Label
中拥有该控件,则需要进行类型转换以标记然后使用Text。 E.g。
varAgt = CType(agentGridView.Rows(i).Cells(1).FindControl("controlID"),Label).Text
- 将controllID
替换为必需的标签ID。
来源 - http://www.aspsnippets.com/Articles/How-to-get-Selected-Row-cell-value-from-GridView-in-ASPNet.aspx
答案 1 :(得分:0)
这就是我的用途:
前:
<asp:GridView ID="agentGridView" DataKeyNames="agentName,agentValue" ... />
备份:
For i = 0 to agentGridView.Rows.Count - 1
varAgt = agentGridView.DataKeys(i).Values("agentValue").ToString
strSQL = "INSERT INTO tblAgentVisitAgents (VisitID, AgtID)" & _
" Values (" & _
VisitID.Text & "," & _
varAgt & ")"
strSQL = Utils.replaceChars(strSQL)
DAL.ExecNonQuery(strSQL, CommandType.Text)
Next
来源(针对C#):Hide BoundField's but still be able to get values with C#