【发布时间】:2011-07-04 05:51:16
【问题描述】:
我的 sql 语句添加了新员工的详细信息,返回 @employeeID。我需要检索此@employeeID 以在我的viewprofile.asp.vb 中显示newly added employee 的详细信息。如何对 VB 进行编码以从 SQL 中检索 @employeeID 并将 @employeeID 变量包含在我的 VB 代码中,以便它显示我新添加的信息?
【问题讨论】:
我的 sql 语句添加了新员工的详细信息,返回 @employeeID。我需要检索此@employeeID 以在我的viewprofile.asp.vb 中显示newly added employee 的详细信息。如何对 VB 进行编码以从 SQL 中检索 @employeeID 并将 @employeeID 变量包含在我的 VB 代码中,以便它显示我新添加的信息?
【问题讨论】:
您需要使用添加一个带方向的SqlParameter 输出
【讨论】:
在 Sql Server 查询中:
Select @employeeID = Ident_Current('employee table')
在代码隐藏中:
employeeID = SqlCmd.ExecuteScalar().ToString();
【讨论】:
<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
【讨论】: