我有这个提供给我的存储过程:
USE [DatabaseName]
GO
DECLARE@return_value int,
@L1 nchar(10),
@L2 nchar(10),
@L3 nchar(10),
@L4 nchar(10),
@LD1 nchar(15),
@LD2 nchar(15),
@LD3 nchar(15),
@LD4 nchar(15)
EXEC@return_value = [dbo].[uspCheckTagId]
@TagId = '10001',
@deviceId = 'testunitid',
@L1 = @L1 OUTPUT,
@L2 = @L2 OUTPUT,
@L3 = @L3 OUTPUT,
@L4 = @L4 OUTPUT,
@LD1 = @LD1 OUTPUT,
@LD2 = @LD2 OUTPUT,
@LD3 = @LD3 OUTPUT,
@LD4 = @LD4 OUTPUT
SELECT
@L1 as N'@L1',
@L2 as N'@L2',
@L3 as N'@L3',
@L4 as N'@L4',
@LD1 as N'@LD1',
@LD2 as N'@LD2',
@LD3 as N'@LD3',
@LD4 as N'@LD4'
SELECT 'Return Value' = @return_value
GO
我的问题是如何从ASP.NET调用此存储过程?
我完全是从头开始,所以我过去尝试过的所有代码现在都消失了:(
请帮忙。
假设这是SQL服务器(你应该真正为这个正确的代码!),你应该使用的代码是这样的-把喜欢的东西一次性SqlConnection
和SqlCommand
成适当的using(..) { ... }
块,使用的参数为你的程序,等等。
procedure void CallStoredProcedure(int tagId)
{
// get connection string, typically from config
string connectionString = ConfigurationManager.ConnectionStrings["...."].ConnectionString;
// Define stored procedure name
string storedProcedureName = "dbo.uspCheckTagId";
// create connection and command
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmdExecProc = new SqlCommand(storedProcedureName, conn))
{
cmdExecProc.CommandType = CommandType.StoredProcedure;
// build up parameters
cmdExecProc.Parameters.Add("@TagId", SqlDbType.Int).Value = tagId;
cmdExecProc.Parameters.Add("@L1", SqlDbType.NChar, 10).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@L2", SqlDbType.NChar, 10).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@L3", SqlDbType.NChar, 10).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@L4", SqlDbType.NChar, 10).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@LD1", SqlDbType.NChar, 15).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@LD2", SqlDbType.NChar, 15).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@LD3", SqlDbType.NChar, 15).ParameterDirection = ParameterDirection.Output;
cmdExecProc.Parameters.Add("@LD4", SqlDbType.NChar, 15).ParameterDirection = ParameterDirection.Output;
// open connection, execute proc, close connection
conn.Open();
cmdExecProc.ExecuteNonQuery();
// read out the output parameters here, and do with them whatever you need ......
var l1Value = cmdExecProc.Parameters("@L1").Value;
....
conn.Close();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句