通过 Linq 从存储过程返回 null
本文关键字:返回 null 存储过程 Linq 通过 | 更新日期: 2023-09-27 18:36:58
我正在尝试通过 Web 服务从存储过程从 LINQ 到 SQL 获取返回。但是,当我不应该返回时,我不断返回空结果。我不确定出了什么问题。当我尝试直接通过 Linq to 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;
}
我设法通过更改(actual .aspx.cs)
来修复它
dt.Rows.Add(cws.LogInFunction("Ron", "5456"));
自:
dt = (cws.LoginFunction("Ron", "5456"));
并且还要在将布尔 Admin 值传递到表行之前对其进行初始化:
bool initializedAdmin = (query.Admin.HasValue)
? query.Admin.Value
: false;
dbtable.Rows.Add(query.Id, initializedAdmin, query.Name);