gpt4 book ai didi

c# - 我如何使用后面的 C# 代码中的参数调用存储过程

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:41 25 4
gpt4 key购买 nike

我创建了一个如下所示的存储过程,我将如何从后面的 C# 代码中调用它来获取结果并将结果存储在数据集中。

USE [Test]
GO
/****** Object: StoredProcedure [dbo].[tesproc] Script Date: 09/01/2010 13:00:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[tesproc]
-- Add the parameters for the stored procedure here
@a float, @b float, @c float,@d int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
select Id, Name1,ZipCode,StreetName,StreetNumber,State1,Lat,Lng, ( 6371 * ACOS( COS( (@a/@b) ) * COS( (Lat/@b) ) * COS( ( Lng/@b ) - (@c/@b) ) + SIN( @a/@b ) * SIN( Lat/@b ) ) ) as distance from business_details where ( 6371 * ACOS( COS( (@a/@b) ) * COS( (Lat/@b) ) * COS( ( Lng/@b ) - (@c/@b) ) + SIN( @a/@b ) * SIN( Lat/@b ) ) )<@d
END

如果我在 sql server 中执行这个存储过程,它在下面的调用中工作正常

exec dbo.tesproc 12.9216667 ,57.2958,77.591667,1

最佳答案

using (SqlConnection conn = new SqlConnection("connection string goes here"))
using (SqlCommand comm = new SqlCommand("tesproc", conn))
{
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@a", 0.1);
// etc

conn.Open();

using (SqlDataReader reader = comm.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32(reader.GetOrdinal("id"));
// etc
}
}
}

网上有很多综合性的例子:

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson04.aspx

我的代码示例只是演示它的外观 - 它是直接在编辑器中编写的,因此可能无法单独运行。

关于c# - 我如何使用后面的 C# 代码中的参数调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3616208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com