重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
ado.net读数据库进内存是DataTable,单元格内容是object类型,因此你必须自己转换,没有其他捷径。不过考虑到为null的情况以及大量的转换,是单调重复的工作,不妨针对每个类型写个转换函数,比如针对string的,bool的,等等。甚至还可以有泛型版本等。另外.net里面的可空类型就是用来解决数据库这种空值场景的,不妨试试。
我们提供的服务有:成都网站建设、成都做网站、微信公众号开发、网站优化、网站认证、潘集ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的潘集网站制作公司
1、vb.net的 数组定义与变量定义差不多。可以用 dim 来定义 比如: dim a(100) as integer。 也可以不定义下标 在程序中 用 redim 来定义。
初始化一个ArrayList对象,调用它的方法和属性,以及增加等操作。
Dim myAL As New ArrayList()
'Add方法用来增加元素。
myAL.Add("Hello")
myAL.Add("World")
myAL.Add("!")
'Count属性表示元素个数。
Console.WriteLine(myAL.Count.ToString())
建议你用下面两个泛型集合类替代ArrayList:
System.Collections.Generic.List
System.Collections.ObjectModel.Collection
.Net平台引入了很多先进的技术,导致了VB6和VB.Net之间产生了一个巨大的鸿沟
就语言功能上来讲,VB.net完全是为了.Net技术而生,具有更好的运行效率和更加强大的功能(某些方面甚至超过了C#)
从语法角度上来讲,VB.net成为了真正的OOP(面向对象语言),不但支持类的继承、派生,还支持委托、泛型等等更加高级的编程技术
如果你是从VB6升级到.net的话,建议要将VB.net当作一门新的语言来学。以VB6的经验来应用到VB.net上是会犯很多错误的
关于从VB6升级到VB.net的代码变换问题,注意以下几个重要的要点即可:
1.不再支持Load、Shell、.LoadPicture等语句
请用相关的.net语句替换
2.String类为引用类,也就是说
Dim s1,s2 as String
s1="FFFFFFF"
s2=s1
此时修改s2的值s1也会跟着相应变化
3.不再支持Variant型和Currency型变量
分别用Object和Demical类型代替
4.变量长度的变化:
VB6的byte、Integer、long型分别被vb.net的byte、short、integer代替,而long型则成为64位大小的整数。新增了UInteger、ULong、SByte等无符号整数类型
Dim cc As String(),这样只是定义了一个数组类型的变量,它的值为Nothing,所以后面会出NullReferenceException。
定义数组要这么定义Dim cc(k) As String
还有你为什么要用参数k呢,可以通过list.Count来获得列表中元素的数量。
Private Function GetText(list As List(Of TextBox)) As String()
If list Is Nothing Then Throw New ArgumentNullException("list")
Dim k As Integer = list.Count - 1
Dim cc(k) As String
For i As Integer = 0 To k
cc(i) = list(i).Text
Next
Return cc
End Function
还有一些其他方法,比如用convertAll
Dim Texts = list.ConvertAll(Function(txt) txt.Text).ToArray
或者LINQ:
Dim ts = (From c In list Select c.Text).ToArray
ConvertAll返回类型就是List(Of T),LINQ返回类型是IEnumerable(OF T)。它们都有ToArray()方法来转化为数组,不过很多时候其实用不着转化成数组。
上面两种语法至少要VS2008才支持