【问题标题】:how to retrieve a @variable from sql(enterprise manager) in vb?如何在 vb 中从 sql(企业管理器)中检索 @variable?
【发布时间】:2011-07-04 05:51:16
【问题描述】:

我的 sql 语句添加了新员工的详细信息,返回 @employeeID。我需要检索此@employeeID 以在我的viewprofile.asp.vb 中显示newly added employee 的详细信息。如何对 VB 进行编码以从 SQL 中检索 @employeeID 并将 @employeeID 变量包含在我的 VB 代码中,以便它显示我新添加的信息?

【问题讨论】:

    标签: .net asp.net sql vb.net


    【解决方案1】:

    您需要使用添加一个带方向的SqlParameter 输出

    http://support.microsoft.com/kb/306574

    【讨论】:

      【解决方案2】:

      在 Sql Server 查询中:

      Select @employeeID = Ident_Current('employee table')
      

      在代码隐藏中:

      employeeID = SqlCmd.ExecuteScalar().ToString();
      

      【讨论】:

        【解决方案3】:

        <html>
          <head><title>Using Stored Procedures With Output Parameters</title></head>
          <body>
            <form runat="server" method="post">
              Enter a State Code:
              <asp:Textbox id="txtRegion" runat="server" />
              <asp:Button id="btnSubmit" runat="server"
                          Text="Search" OnClick="Submit" />
              <br/><br/>
              <asp:label id="lblRecords" runat="server" />
              <br/><br/>
              <asp:DataGrid id="dgOutput" runat="server" />
            </form>
          </body>
        </html>
        
        <script language="VB" runat="server">
        Sub Submit(Source As Object, E As EventArgs)
        
          Dim strConnection As String = ConfigurationSettings.AppSettings("NWind")
          Dim objConnection As New SqlConnection(strConnection)
          Dim objCommand As New SqlCommand("sp_CustomersByStateWithCount",objConnection)
          objCommand.CommandType = CommandType.StoredProcedure
        
          Dim objParameter As New SqlParameter("@region", SqlDbType.NVarChar, 15)
          objCommand.Parameters.Add(objParameter)
          objParameter.Direction = ParameterDirection.Input
          objParameter.Value = txtRegion.text
        
          Dim objOutputParameter As New SqlParameter("@matches", SqlDbType.Int)
          objCommand.Parameters.Add(objOutputParameter)
          objOutputParameter.Direction = ParameterDirection.Output
        
          objConnection.Open()
        
          Dim objDataReader As SqlDataReader
          objDataReader = objCommand.ExecuteReader()
        
          dgOutput.DataSource = objDataReader
          dgOutput.DataBind()
        
          objCommand.Connection.Close()
          objCommand.Connection.Open()
          objCommand.ExecuteNonQuery()
          lblRecords.Text = "Matches: " & CInt(objCommand.Parameters(1).Value)
        
          objConnection.close()
        End Sub
        </script>
        
        
        ---------------------------------------------------
        Imports System
        Imports System.Data
        Imports System.Data.SqlClient
        
        Module Module1
            Sub Main()
                Dim cn As SqlConnection
                Dim sql As String
                Dim cmd As SqlCommand
        
                cn = New SqlConnection("Data Source=PEREGRINE;" & _
                                       "Initial Catalog=Northwind;Integrated Security=SSPI")
                cn.Open()
                sql = "CREATE PROCEDURE sp_CustomersByStateWithCount @region nvarchar(15), @matches int OUTPUT AS " & _
                      "SELECT CustomerID, CompanyName FROM Customers WHERE region = @region ORDER BY CompanyName " & _
                      "SET @matches = @@rowcount"
                cmd = New SqlCommand(sql, cn)
                cmd.ExecuteNonQuery()
                Console.WriteLine("Procedure created!")
            End Sub
        End Module
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多