Asp.net 在vb.net中通过文本框控件循环以将数据推送到表中

Asp.net 在vb.net中通过文本框控件循环以将数据推送到表中,asp.net,vb.net,Asp.net,Vb.net,我有一个简单的循环,试图用它从表单中捕获数据,并将其放入更新表的存储过程中。在我看来,它应该做它应该做的,但我得到了一个转换错误,我真的不知道为什么。我甚至不知道它是否真的有效,因为我遇到了一个对我来说没有多大意义的错误。以下是我目前拥有的: Dim rowcounter As Integer = 1 While rowcounter < 15 Dim NameHolder As String = "LineID" + rowcounter.ToStrin

我有一个简单的循环,试图用它从表单中捕获数据,并将其放入更新表的存储过程中。在我看来,它应该做它应该做的,但我得到了一个转换错误,我真的不知道为什么。我甚至不知道它是否真的有效,因为我遇到了一个对我来说没有多大意义的错误。以下是我目前拥有的:

    Dim rowcounter As Integer = 1

    While rowcounter < 15
        Dim NameHolder As String = "LineID" + rowcounter.ToString
        CMD.CommandTimeout = 60
        CMD.Connection = CONN
        CMD.CommandType = CommandType.StoredProcedure
        CMD.CommandText = "UpdateArchived"
        CMD.Parameters.Clear()
        CMD.Parameters.AddWithValue("@ID", Me.Controls(NameHolder).ToString)
        DA.SelectCommand = CMD
        DS.Clear()
        DA.Fill(DS)
    End While
Dim行计数器为整数=1
而行计数器<15
作为String=“LineID”+rowcounter.ToString的尺寸名称保持器
CMD.CommandTimeout=60
CMD.Connection=CONN
CMD.CommandType=CommandType.storedProcess
CMD.CommandText=“UpdateArchived”
CMD.Parameters.Clear()
CMD.Parameters.AddWithValue(“@ID”,Me.Controls(NameHolder.ToString)
DA.SelectCommand=CMD
DS.Clear()
DA.填充(DS)
结束时
错误在Me.Controls(NameHolder.ToString行中。它表示以下内容:从字符串“LineID1”到类型“Integer”的转换无效

这里什么被转换成整数?控件是否以整数形式返回控件

尝试使用¬+

两者都是concat运算符,但+会尝试将整数添加到整数中,因此会出现错误只处理字符串

所以

HTH

尝试使用¬+

两者都是concat运算符,但+会尝试将整数添加到整数中,因此会出现错误只处理字符串

所以


HTH

另外,我假设在您的情况下“option strict”是关闭的,如果是这样,那么明智的做法是打开此选项,并且在生成代码之前将标记此异常。我尝试了此操作,但错误相同。奇怪的是,如果我在msgbox中输出NameHolder,它会显示LineID1,但由于某种原因,当我尝试访问该控件时,它会给我相同的错误。就像“LineID1”是一个整数一样。另外,我假设在您的情况下“option strict”是关闭的,如果是这样的话,明智的做法是打开它,并且在生成代码之前标记此异常。我尝试了它,但错误是相同的。奇怪的是,如果我在msgbox中输出NameHolder,它会显示LineID1,但由于某种原因,当我尝试访问该控件时,它会给我相同的错误。不知何故,“LineID1”是一个整数。什么类型的控件是
LineID1
?我试过了,但它给了我一个错误——“Text不是System.Web.UI.control的成员。”LineID1-LineID14是文本框。我猜-存储过程的@ID参数被定义为整数。我以前用稍微不同的方法尝试了一个Ctype,但它不起作用。我试过了,结果也出了同样的错误。即使我只是想把它放在msgbox里显示。伙计们。。。Me.Controls()需要一个整数,因此会出现错误。查看上面的链接,了解如何循环并查找控件。您需要一个递归函数。另一篇有用的帖子,虽然在C#什么类型的控件是
LineID1
?我试过了,但它给了我一个错误——“Text不是System.Web.UI.control的成员。”LineID1-LineID14是文本框。我猜-存储过程的@ID参数被定义为整数。我以前用稍微不同的方法尝试了一个Ctype,但它不起作用。我试过了,结果也出了同样的错误。即使我只是想把它放在msgbox里显示。伙计们。。。Me.Controls()需要一个整数,因此会出现错误。查看上面的链接,了解如何循环并查找控件。您需要一个递归函数。另一篇有用的帖子,虽然是用C写的#
Dim NameHolder As String = "LineID" & rowcounter.ToString