Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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
Sql 在vb.net中调用子过程_Sql_Vb.net_Winforms_Stored Procedures - Fatal编程技术网

Sql 在vb.net中调用子过程

Sql 在vb.net中调用子过程,sql,vb.net,winforms,stored-procedures,Sql,Vb.net,Winforms,Stored Procedures,我只是想问你,我在vb.net中调用子过程的方法是否正确。我已经测试过了,它正在工作。我只是想知道我是否需要改变我的编码方式 下面是我的子过程: Sub loadStudDB() 'To load student info from database and pass it through objecs from winform' Try con.Open() Dim studid As Integer = Val(Form1.studentidtx

我只是想问你,我在vb.net中调用子过程的方法是否正确。我已经测试过了,它正在工作。我只是想知道我是否需要改变我的编码方式

下面是我的子过程:

Sub loadStudDB()

 'To load student info from database and pass it through objecs from winform'

    Try
        con.Open()
        Dim studid As Integer = Val(Form1.studentidtxt.Text)
        Dim selectQ = "SELECT * FROM StudentInfoTBL WHERE StudentID=@studid"
        Dim cmd As New SqlCommand(selectQ, con)

        cmd.Parameters.AddWithValue("@studid", studid)
        Dim dr As SqlDataReader = cmd.ExecuteReader()
        If dr.HasRows Then
            dr.Read()

            studidtxt.Text = dr.Item("StudentID").ToString
            studname.Text = dr.Item("StudentName")
            agebox.Text = dr.Item("Age").ToString

            If dr.Item("Gender") = "Male" Then
                malebtn.Checked = True
            Else
                femalebtn.Checked = True
            End If

            dobtxt.Text = dr.Item("DOB")
            homeaddtxt.Text = dr.Item("Home Address")
            citytxt.Text = dr.Item("City").ToString
            telephonetxt.Text = dr.Item("Telephone")
            mobiletxt.Text = dr.Item("Mobile")
            emailtxt.Text = dr.Item("Email")

            dr.Close()
            con.Close()

        End If
    Catch ex As Exception
        MessageBox.Show(ex.ToString)
    Finally
        con.Close()
    End Try
End Sub
然后我将从表单加载事件调用它:

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     'call procedure created'
        loadStudDB()
    End Sub

如果您的代码中没有任何错误,并且它按预期工作,那么您已经“正确地”完成了。如果您正在寻找使代码更好、更高效、更易于阅读的可能方法的建议,那么请尝试在子过程的结尾处使用一个
End Sub
,但除此之外,它看起来不错。您可能想考虑使用中包装您的Sql命令声明”。这将保证在方法结束时释放该命令。我投票将这个问题作为离题题结束,因为它询问的是一个问题。如果您的代码中没有任何错误,并且工作正常,那么您已经“正确地”完成了。如果您正在寻找使代码更好、更高效、更易于阅读的可能方法的建议,然后尝试在子过程结束时需要一个<代码>结束子<代码>,但除此之外,它看起来很好。您可能需要考虑使用< /Cult>块包装<代码>中的Sql命令声明。这将保证在方法结束时释放该命令。我投票将这个问题作为离题题结束,因为它询问的是一个问题。如果您的代码中没有任何错误,并且工作正常,那么您已经“正确地”完成了。如果您正在寻找使代码更好、更高效、更易于阅读的可能方法的建议,然后尝试在子过程结束时需要一个<代码>结束子<代码>,但除此之外,它看起来很好。您可能需要考虑使用< /Cult>块包装<代码>中的Sql命令声明。这将保证在方法结束时释放该命令。我投票结束这个问题,因为它是关于一个问题。