Sql 在vb.net中使用Main函数

Sql 在vb.net中使用Main函数,sql,vb.net,Sql,Vb.net,我试图在vb中使用一个main函数来告诉编译器witch form将加载到sql表,但在我创建它的类vb中出现了一些错误: Imports System.Data Imports System.Data.SqlClient Imports System.Windows.Forms Public Class main Dim sqlcnx As New SqlConnection Dim dtb As DataTable = New DataTable() Dim rea

我试图在vb中使用一个main函数来告诉编译器witch form将加载到sql表,但在我创建它的类vb中出现了一些错误:

Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Public Class main
    Dim sqlcnx As New SqlConnection

    Dim dtb As DataTable = New DataTable()
    Dim reader As SqlDataReader
   sqlcnx.ConnectionString = "Data Source=HADY-PC\HADI;Initial Catalog=db1;Persist Security Info=True;User ID=sa;Password=1234"


    Dim da As New DataSet1TableAdapters.UserTableAdapter
        dtb.Columns.Add("UserID", GetType(Integer))
        da.FillBy(dtb)
    Dim i As Integer
        MsgBox(dtb.Rows.Count)
         i=dtb.Rows.Count
        If i = 1 Then
            Form1.Show()
        End If
End Class
msgbox和form1.show上的错误为预期减速

如果语句:
statemnet不能出现在方法体多行/lambada的外部

编辑:

Private Sub login_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim da As New DataSet1TableAdapters.UserTableAdapter
    dtb.Columns.Add("UserID", GetType(Integer))
    da.FillBy(dtb)
    Dim i As Integer
    MsgBox(dtb.Rows.Count)
    If i = 1 Then
        Form1.Show()
    End If
End Sub

代码是这样的,但是当编译转到行
da.FillBy(dtb)
时,它会加载当前登录表单,而不会转到if语句您不能运行if语句或在sub之外显示消息框。将其全部放在处理
Form1.load()
的sub中,您应该可以开始了

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim da As New DataSet1TableAdapters.UserTableAdapter
    dtb.Columns.Add("UserID", GetType(Integer))
    da.FillBy(dtb)
    Dim i As Integer
    MsgBox(dtb.Rows.Count)
    If i = 1 Then
        Form1.Show()
    End If
End Sub

代码不能放在任何地方。它需要在方法(子或函数)内部。该代码没有“home”,那么如何调用它呢?它不是一个“Main函数”-您创建了一个主类(名称的选择也很糟糕),应该用什么来确定是否显示Form1?我们不知道什么是
i
represents我以前写过这段代码,但是当编译器转到第
da.FillBy(dtb)
行时,在它转到if语句加载另一个表单之前加载当前表单如果它是您的主表单,那么它当然会加载。。。我不知道有什么方法可以阻止这种情况,除了在做其他事情之前运行
Me.Opacity=0
——无论哪种方法,您都可以启动应用程序,应用程序也可以运行,但用户没有界面。除非我弄错了,否则我不认为这是你想要的。另外:请参阅@LarsTech和@Puropoix的评论。您已经创建了
i
,但没有给它一个值,因此您的If语句将永远不会运行,因为
i
没有值,因此不等于1。我假设您希望在If语句之前使用
Dim I As Integer=dtb.Rows.Count