这是SQL查询:
CREATE PROCEDURE get_nearest_Restaurants
@lat FLOAT,
@lng FLOAT
AS
BEGIN
DECLARE @point GEOMETRY
SET @point = GEOMETRY::Point(@lat, @lng, 4326)
SELECT TOP (5)
Id, Name, City, @point.STDistance(Location) AS Location
FROM
[dbo].[Restaurants]
ORDER BY
@point.STDistance(Location)
END
GO
答案 0 :(得分:3)
您可以使用SqlCommand
来引用您的StoredProcedure
,然后使用SqlDataAdapter
来获取数据。
请不要忘记通过SqlParameter
传递参数。
此代码将在BotApplication中调用您的sp(get_nearest_Restaurants
):
public async Task<DataTable> ExecuteSp(string lat, string lng)
{
SqlConnection cnn = new SqlConnection("Data Source=ServerName/IP;Initial Catalog=DatabaseName;User ID=UserName;Password=Password");
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
try
{
cnn.Open();
cmd = new SqlCommand("get_nearest_Restaurants", cnn);
cmd.Parameters.Add(new SqlParameter("@lat", lat));
cmd.Parameters.Add(new SqlParameter("@lng", lng));
cmd.CommandType = CommandType.StoredProcedure;
da.SelectCommand = cmd;
await Task.FromResult(da.Fill(dt));
}
catch (Exception)
{
}
finally
{
cnn.Close();
cmd.Dispose();
}
return dt;
}
要连接到SQL-Server
,您应该使用SqlConnection
。
SqlConnection
中有一个属性,即ConnectionString
,它定义我们的SQL-Server
在哪里以及如何连接它。