将每行datagrid输入SQL数据库

时间:2014-10-21 16:32:39

标签: asp.net vb.net sql-server-2008

我正在尝试从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)是隐藏字段。当我看到它时,输入表格有效。当它被隐藏时,它不会输入任何东西,从而给我一个语法错误。有没有办法可以使用隐藏字段进行输入?

2 个答案:

答案 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#