Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.net字符串包含对DataTable.Column的引用_Vb.net_String - Fatal编程技术网

VB.net字符串包含对DataTable.Column的引用

VB.net字符串包含对DataTable.Column的引用,vb.net,string,Vb.net,String,我正在使用VB.NET和ADO 4.0。假设我有一个包含对table.column的引用的字符串,我可以在命令中使用该字符串的内容吗 下面是我尝试使用的代码示例: intStatus = 1 strName = "tablename.columnname" & intStatus 'here I would need to have: tablename.columnname1 'so I can perform following line tablename.columnname

我正在使用VB.NET和ADO 4.0。假设我有一个包含对table.column的引用的字符串,我可以在命令中使用该字符串的内容吗

下面是我尝试使用的代码示例:

intStatus = 1
strName = "tablename.columnname" & intStatus

'here I would need to have:
tablename.columnname1 
'so I can perform following line
tablename.columnname1 = strValue
//////////////////////////////////////////////////

我已经到了可以使用字符串内容作为引用的地步,这似乎很明显,但[strName]部分地起到了作用。。。。调试bookableday.room1时,它保持为0,而应显示为6。可能存在转换问题,因为调试器向我显示6 i.s.o.6。这是实际代码:

Do While intStatus < 14
                    If arrRoomStatus(intStatus) = True Then
                        strName = "bookableday.room" & intStatus
                        [strName] = 6
                        Bookableday.av_avail_id = intAv_avail_id
                        Bookableday.Av_Date = dteAddDate
                        dteAddDate = dteAddDate.AddDays(1)
                        intStatus = intStatus + 1
                        intAv_avail_id = intAv_avail_id + 1
                    Else
                        strName = "bookableday.room" & intStatus
                        [strName] = 5
                        Bookableday.av_avail_id = intAv_avail_id
                        Bookableday.Av_Date = dteAddDate
                        dteAddDate = dteAddDate.AddDays(1)
                        intStatus = intStatus + 1
                        intAv_avail_id = intAv_avail_id + 1
                    End If

我想你要做的就是:

tablename.Rows(index)(ColumnName) = value
您可以通过列名引用列,而不仅仅是索引位置

尝试按当前行和列名引用DataTable,如下所示:

'// strName = "bookableday.room" & intStatus
strName = "room" & intStatus
If arrRoomStatus(intStatus) = True Then
  Bookableday(rowIndex)(strName) = 6
Else
  Bookableday(rowIndex)(strName) = 5
End If

你能补充一下你想做什么的细节吗。你的问题似乎有点含糊。更多的信息将非常有用。什么类型的命令?如果不了解更多,就很难提供帮助。简言之,你所问的可能会奏效,但我需要知道更多。你好,我感谢你的帮助。虽然我还有一个问题。我的表名是bookableday,列是.room1.room2.room3.Room4等等。。。我想用一个可以在循环中改变的整数来替换这个数字。我以为我已经通过添加[]处理了这个问题,它不会给我错误,但是值5或6不会写入表中。当我调试时,我注意到调试器将5写为5…而它应该是5,因为我的表字段是整数。再次感谢,@user1036354我愿意提供更多帮助,但您还没有完全记录这个问题。什么是预订日?数据表的名称是什么?那些专栏呢?帮助我帮助你。@user1036354更新答案。也许您只需要为DataTable提供带有列名的行索引。