VB.NET DataSet DataRow使用求助?

[复制链接]
查看11 | 回复8 | 2021-1-27 06:48:24 | 显示全部楼层 |阅读模式
在C#中学会使用DataSetDatetable
在VB.Net2005中
aryline(i)=information(i)这行报错
求高手解答?
错误1重载决策失败,原因是没有可访问的“Item”能够不经收缩转换即可被调用:
'PublicDefaultPropertyItem(columnNameAsString)AsObject':与参数“columnName”匹配的参数从“Long”类型转换为“String”类型。
'PublicDefaultPropertyItem(columnIndexAsInteger)AsObject':与参数“columnIndex”匹配的参数从“Long”类型转换为“Integer”类型。


Diminformation()AsString
Ifinformation(0)tThen
DimarylineAsSystem.Data.DataRow
aryline=qar_tbl.NewRow
Fori=0Tomax_colm
aryline(i)=information(i)
Nexti
qar_tbl.Rows.Add(aryline)
EndIf
Ifinformation(0)tThen
DimarylineAsSystem.Data.DataRow()
aryline=qar_tbl.NewRow
Fori=0Tomax_colm
aryline(i)=information(i)
Nexti
qar_tbl.Rows.Add(aryline)
EndIf
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
第一段代码,数据类型不匹配,可能你的表中定义的列的数据类型为INT,
DimarylineAsSystem.Data.DataRow()这里用"()"定义了DATAROW数组,更加不对
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
数据类型改了也还不行觉得可能是dr(i)=information(i)有错吧!!继续求救!!
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
要看看qar_tbl的宣告
table欄數和max_colm是否相同?!
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
Dimqar_dbAsNewDataSet("Mydata")
Dimqar_tblAsNewDataTable("rawdata")
DimdrAsDataRow
Dimmax_colmAsInteger
Dimcolm_numAsLong'columncount
Dimline_numAsLong
对Datatable再没啥定义了
前面取了Table的列
Fori=0Tocolm_num
qar_tbl.Columns.Add(qar_field(i),Type.GetType("System.String"))
Next
没错误可以取到表头正确的!

回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
max_colm=UBound(information)
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
DimiAsInteger
正解!!!!!!!
回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
错误1重载决策失败,原因是没有可访问的“Item”能够不经收缩转换即可被调用:
'PublicDefaultPropertyItem(columnNameAsString)AsObject':与参数“columnName”匹配的参数从“Long”类型转换为“String”类型。
'PublicDefaultPropertyItem(columnIndexAsInteger)AsObject':与参数“columnIndex”匹配的参数从“Long”类型转换为“Integer”类型。
这两句话不知道楼主看不看的懂?
aryline(i),这里访问的应该是aryline.Item(i)
item省略了是因为item定义为Default默认属性。
这个属性有两个重载。
PublicDefaultPropertyItem(columnNameAsString)AsObject
PublicDefaultPropertyItem(columnIndexAsInteger)AsObject
他们的参数是string或者integer类型,你max_colm=UBound(information)返回时一个Long类型的数据,用在Fori=0Tomax_colm上面,让i也变成long类型了。
如果下标不会超过integer,
aryline(cint(i))来强制转换一下吧

回复

使用道具 举报

千问 | 2021-1-27 06:48:24 | 显示全部楼层
已经弄懂了Thankyouallthesame.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行