我試圖從僱員表中獲取名稱和其他詳細信息,其中用戶名和密碼顯示在列表中,但我無法返回列表值從bool函數中的數據庫中獲取。將模型中的列表值返回給控制器,其中列表呈現在布爾類內
我的模型在登錄模型類,在這裏我只是聲明型號:
namespace BusinessLayer
{
public class Login
{
public string EmployeeId { get; set; }
public string Name { get; set; }
public string UserType { get; set; }
public string Designation { get; set; }
public string Department { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public int ReportingToId { get; set; }
public string ReportingTo { get; set; }
}
}
而我的其他型號命名LoginBusinessLayer類上面的模型:
namespace BusinessLayer
{
public class LoginBusinessLayer
{
public string UserName { get; set; }
public string Password { get; set; }
public int Id { get; set; }
public bool IsValid(string _username, string _password)
{
string cnn = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
List<Login> login = new List<Login>();
using (SqlConnection conn=new SqlConnection(cnn))
{
string _sql = @"SELECT *,AddUserType.UserType From Employee inner join AddUserType ON AddUserType.Id = Employee.UserTypeId " +
@"WHERE [UserName] = @u AND [Password] = @p";
var cmd = new SqlCommand(_sql, conn);
cmd.Parameters
.Add(new SqlParameter("@u", SqlDbType.VarChar))
.Value = _username;
cmd.Parameters
.Add(new SqlParameter("@p", SqlDbType.VarChar))
.Value =_password;
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Login logi = new Login();
logi.EmployeeId = rdr["EmpId"].ToString();
logi.Name = rdr["Name"].ToString();
logi.UserType = rdr["UserType"].ToString();
login.Add(logi);
}
return login; // HERE I WILL GET ERROR BECAUSE I CANT CONVERT LIST TO BOOL
if (rdr.HasRows)
{
rdr.Dispose();
cmd.Dispose();
return true;
}
else
{
rdr.Dispose();
cmd.Dispose();
return false;
}
}
}
}
}
,並命名爲我的控制器類作爲登錄:
namespace PMS_Rotary.Controllers
{
public class LoginController : Controller
{
//
// GET: /Login/
[HttpGet]
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LoginBusinessLayer log)
{
string Name = "";
string EmployeeId = "";
string UserType = "";
if (ModelState.IsValid)
{
if (log.IsValid(log.UserName, log.Password))
{
List<Login> login = new List<Login>();
foreach (var i in login)
{
Name = i.Name;
EmployeeId = i.EmployeeId;
UserType = i.UserType;
}
Session["Name"] = Name;
Session["EmployeeId"] = EmployeeId;
Session["UserType"] = UserType;
return RedirectToAction("Homepage","Homepage");
}
else
{
ModelState.AddModelError("", "Credentials are invalid");
}
}
return View(log);
}
}
}
這是我的問題 - 代碼正確地提取al l使用模型中的列表的數據,但我不能在bool函數中返回它。