我试图通过Web服务从LINQ到SQL从存储过程返回。但是,当我不应该这样做的时候,我会继续得到一个空结果。我不确定是什么问题。当我尝试通过Linq直接调用存储过程到SQL时,我能够成功地将结果绑定回GridView。
但是当我尝试以下代码时,它不起作用:
实际.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 :(得分:2)
我设法通过更改(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);