我想通过 Azure 函数运行一个存储过程,该函数从 SQL 表返回行。我收到响应 200 OK。 但我无法在输出窗口中打印这些行。下面是我的代码 -
#r "System.Data"
using System.Net;
using System.Data;
using System.Data.SqlClient;
using Newtonsoft.Json;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
dynamic body = await req.Content.ReadAsStringAsync();
var e = JsonConvert.DeserializeObject<Person>(body as string);
//Connect to SQL
var cnnString = "XXXX";
using (SqlConnection conn = new SqlConnection(cnnString))
{
conn.Open();
SqlCommand cmd = new SqlCommand("sp_GET_TOP_5_APP", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@USERID", e.param1));
cmd.Parameters.Add(new SqlParameter("@SM", e.param2));
cmd.Parameters.Add(new SqlParameter("@SY", e.param3));
cmd.Parameters.Add(new SqlParameter("@EM", e.param4));
cmd.Parameters.Add(new SqlParameter("@EY", e.param5));
var reader = cmd.ExecuteReader();
}
return req.CreateResponse(HttpStatusCode.OK, "Ok");
}
public class Person
{
public string param1 {get;set;}
public string param2 {get;set;}
public string param3 {get;set;}
public string param4 {get;set;}
public string param5 {get;set;}
}
请帮忙。预先感谢。
我可以使用下面的代码获取这些值。
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
var kk=reader.GetValue(0) + " - " + reader.GetValue(1) + " - " + reader.GetValue(2);
log.Info(kk.ToString());
}
只需向 @pramoad 答案添加更多内容即可灵活地检索具有列名称的特定行数据
while (reader.Read())
{
var kk = reader.GetValue(reader.GetOrdinal("Column1")) + " - " + reader.GetValue(reader.GetOrdinal("Column2")) + " - " + reader.GetValue(reader.GetOrdinal("Column3")) + " - " + reader.GetValue(reader.GetOrdinal("Column4"));
log.Info(kk.ToString());
}