Извините, если это несколько элементарный вопрос ... .net newb здесь бросили в глубокий конец.Вывод результатов хранимой процедуры
Я создал хранимую процедуру, чтобы вернуть запись, которую я выполняю, как показано ниже. Когда я проверяю «r» с точкой останова в Express Studio Express, мои данные возвращаются правильно.
MyPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
var dd = dealerDetails();
}
protected DataTable dealerDetails()
{
SqlConnection cn;
SqlCommand cmd;
using (cn = new SqlConnection(Settings.Server.ConnectionString))
{
cn.Open();
cmd = new SqlCommand("spMyStoredProcedure", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@strslug", SqlDbType.NVarChar, -1).Value = Page.Request.QueryString["_slug"];
JJ.Diagnostics.Tracer.Trace(cmd);
try
{
IDataReader r = cmd.ExecuteReader();
while (r.Read())
{
??????
}
r.Close();
return ?????;
}
catch (SqlException exSql)
{
// Make an event log entry of the exception
EventLogController.LogException(exSql);
throw;
}
catch (Exception ex)
{
// Make an event log entry of the exception
EventLogController.LogException(ex);
throw;
}
}
}
Когда я просто пытаюсь вернуть г, я получаю сообщение об ошибке:
Cannot inplicityly convert type 'System.Data.IDataReader' to 'System.Data.DataTable'. An explicity conversion exists (are you missing a cast?)
Я хотел бы быть в состоянии получить доступ к результатам из этой хранимой процедуры в MyPage.aspx. Я бы предположил, что смогу сделать это с помощью <%=dd.propname%>
. Правильно ли я в этом или потребует каких-либо дополнительных шагов?
Пожалуйста, дайте мне знать, если я пропустил какую-либо важную информацию здесь.
честный совет - тем более, что вы изучаете .net поэтому надеюсь, вам легче установить хорошую/плохую привычку. Попытайтесь использовать более описательные имена переменных - нет причин для минимизации C#. – decPL