.NET运行存储过程,获取输出

时间:2015-12-16 18:07:07

标签: asp.net sql-server stored-procedures

我正在使用.NET运行这个存储过程:

public List<showWhatClass> showWhatMethod(string deviceWhat, int tagWhat, Decimal latit, Decimal longit, int Process, string CallNext, int CallNextVar)
{
    showWhatCell = new List<showWhatClass>();

    try
    {
        using (connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand("iosShowWhat", connection))
            {
                command.CommandType = CommandType.StoredProcedure;

                command.Parameters.AddWithValue("@DeviceId", deviceWhat);
                command.Parameters.AddWithValue("@TagId", tagWhat);
                command.Parameters.AddWithValue("@Latitude", latit);
                command.Parameters.AddWithValue("@Longitude", longit);
                command.Parameters.AddWithValue("@Process", Process);
                command.Parameters.AddWithValue("@CallNext", CallNext);
                command.Parameters.AddWithValue("@CallNextVar", CallNextVar);

                connection.Open();
                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    showWhatClass item = new showWhatClass();
                    item.CallNext = reader.GetValue(0).ToString();
                    item.CallNextVar = (int)reader.GetValue(1);
                    showWhatCell.Add(item);
                }
            }
        }
    }
    finally
    {
        connection.Close();
    }

    return showWhatCell;
}

存储过程返回以下消息:

enter image description here

当我运行时,我得到以下内容:

<ArrayOfshowWhatClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebServiceAPI.Models"/>

是空的

我的问题是我做错了什么,当我使用.NET运行它但是确实在SQL Server中返回消息时,什么都没有返回。

这是我的showWhatClass

public class showWhatClass
{
        public string CallNext { get; set; }
        public int CallNextVar { get; set; }
}

1 个答案:

答案 0 :(得分:0)

尝试更改参数:

command.Parameters.AddWithValue("@DeviceId", deviceWhat);

以下内容:

command.Parameters.Add("@DeviceId", SqlDbType.Int).Value = deviceWhat;