2013-10-25 3 views
1

Я пытаюсь получить возврат из хранимой процедуры из LINQ to SQL через веб-службу. Тем не менее, я все время возвращаю нулевой результат, когда не должен. Я не уверен, что не так. Когда я пытаюсь вызвать хранимую процедуру непосредственно через Linq to SQL, я могу успешно связать результат с GridView.Возврат null из хранимой процедуры через Linq

Но когда я пытаюсь следующий код, он не работает:

Фактические .aspx.cs:

protected void LoginUsrBtn_Click(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Id"); 
    dt.Columns.Add("Admin"); 
    dt.Columns.Add("Name"); 

    try 
    { 
     using (CustomWebService cws = new CustomWebService()){ 
      dt.Rows.Add(cws.LogInFunction("Ron", "5456")); 
     } 
    } 
    catch 
    { 
     Label1.Text = "Error"; 
    } 
} 

веб-службы:

{ 
    DataTable dbtable = new DataTable(); 
    dbtable.Columns.Add("Id"); 
    dbtable.Columns.Add("Admin"); 
    dbtable.Columns.Add("Name"); 
    DataClassesDataContext dbcontext = new DataClassesDataContext(); 

    var query = (dbcontext.UserLogin(username, password)).SingleOrDefault(); 

    //returns data correctly 
    if (query != null) 
    { 
     try 
     { 
       **//WHERE THE DATA DISAPPEARS:** 
       dbtable.Rows.Add(query.Id, query.Admin, query.Name); 
       return dbtable; 
     } 
     catch (Exception) 
     { 
      dbtable.Rows.Add(0, 0, 0); 
      return dbtable; 
     } 

    } 
    return dbtable; 
} 
+0

могли бы вы переместив решение к ответу? Это нормально, чтобы ответить на собственный вопрос. –

+0

Я попытался изначально, но у меня недостаточно репутации, чтобы сделать это. Кажется, я могу сделать это сейчас – Jos

ответ

2

I удалось исправить это, изменив (actual .aspx.cs)

dt.Rows.Add(cws.LogInFunction("Ron", "5456")); 

к:

dt = (cws.LoginFunction("Ron", "5456")); 

А также инициализирует логическое значение администратора, прежде чем передать его через строку таблицы с:

bool initializedAdmin = (query.Admin.HasValue) 
          ? query.Admin.Value 
          : false; 
dbtable.Rows.Add(query.Id, initializedAdmin, query.Name); 
Смежные вопросы