不能用"New"声明数组
Public Class DBoperation
Dim conn As New OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand
Dim da As New OleDb.OleDbDataAdapter
Dim dt As New DataTable
Public Sub New(ByVal connstr As String)
conn.ConnectionString = connstr
cmd.Connection = conn
da.SelectCommand = cmd
End Sub
Public Function executesql(ByVal sql As String) As DataTable
If InStr(LCase(sql), "select") Then
cmd.CommandText = sql
conn.Open()
dt = New DataTable
da.Fill(dt)
conn.Close()
Return dt
Else
If InStr(LCase(sql), "delete") Or InStr(LCase(sql), "update") Or InStr(LCase(sql), "insert") Then
cmd.CommandText = sql
conn.Open()
If InStr(LCase(sql), "delete") Then
MsgBox("删除记录 " & cmd.ExecuteNonQuery())
End If
If InStr(LCase(sql), "update") Then
MsgBox("更新记录 " & cmd.ExecuteNonQuery())
End If
If InStr(LCase(sql), "insert") Then
MsgBox("新增记录 " & cmd.ExecuteNonQuery())
End If
conn.Close()
End If
Return Nothing
End If
End Function
End Class
这是我定义的一个类
然后
Public Class LendInfo
Dim dboperation1(connstr) As New DBoperation()
Private Sub LendInfo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sql As String = "select * from StudentInfo where ID = '" & stuno & "'"
Dim dt As New DataTable
dt = dboperation1.executesql(sql)
End Sub
End Class 其中connstr在公共变量模块中定义了。
为什么会提示:不能用"New"声明数组?
请各位大虾帮帮忙!!
[最优解释]
晕倒,如果不是定义数组,那下面这样就可以了
Dim dboperation1 As New DBoperation(connstr)
或者
Dim dboperation1 As DBoperation=New DBoperation(connstr)
你那方式不对
dboperation1 是变量的名称,你只能对它进行赋值,它又不是方法,可以接受你传的参数
[其他解释]
楼上的讲解很正确,对于一个数组,我们在定义的时候仅仅是定义了一个什么类型的,以及他的长度,并没有对数组中的每一个个体进行实例化,所以必须要对每一个个体进行实例化,才可以调用!
[其他解释]
Dim dboperation1(connstr) As DBoperation
去掉New就可以了
或者像下面这样声明
Dim dboperation1() As DBoperation=New DBoperation(connstr+1){}
[其他解释]
如果去掉"new",那这个实例dboperation1在后面的代码中将无法使用,vb.net的实例化必须是:
dim 实例名 as new 类名
[其他解释]
如果你要实例化那就要用循环进行赋值,实例化的,不能直接对数组那样进行的
Dim dboperation1(connstr) As DBoperation
For i as Integer=0 to dboperation1.Length-1
dboperation1(i)=New DBoperation
Next
对数组是没有简便方法的
[其他解释]
我想再重新说一下,看来大家没有仔细看代码,DBoperation 是我定义的一个类,Public Class DBoperation
Public Sub New(ByVal connstr As String)
conn.ConnectionString = connstr
cmd.Connection = conn
da.SelectCommand = cmd
End Sub
End Class
构造函数中有一个参数,connstr,这里构造函数的作用只是连接数据库。
DBoperation 既然是一个类,那么我用的时候就得实例化,所以dboperation1是一个对象,
dim dboperation(connstr) as new dboperation
但是这里出了错误,就像帖子的标题:不能用“new ”声明数组,
我认为这里不该错,
我的代码整个过程与数组无关。
[其他解释]
http://blog.csdn.net/WizardWu/archive/2008/06/25/4680923.aspx
[其他解释]
非常感谢!
[其他解释]
感谢 xingyuebuyu 和 shaozengwei 解决了我的问题
[其他解释]
非常感谢 xingyuebuyu,这个问题一直折腾了我一天,看到你的帖子,我终于解决了我的问题了,太感谢了!
[其他解释]
谢谢,我也明白了。原来括号要放到后面去。