不使用c# asp.net从数据库中获取任何行数据
本文关键字:数据库 获取 任何行 数据 net asp | 更新日期: 2023-09-27 18:03:03
我无法使用c# asp.net从数据库中获取任何行数据。我试图从我的DB中获取一行数据,但它不返回任何行。我使用3-tire架构,我在下面解释我的代码。
index.aspx.cs:
protected void userLogin_Click(object sender, EventArgs e)
{
if (loginemail.Text.Trim().Length > 0 && loginpass.Text.Trim().Length >= 6)
{
objUserBO.email_id = loginemail.Text.Trim();
objUserBO.password = loginpass.Text.Trim();
DataTable dt= objUserBL.getUserDetails(objUserBO);
Response.Write(dt.Rows.Count);
}
}
userBL.cs:
public DataTable getUserDetails(userBO objUserBO)
{
userDL objUserDL = new userDL();
try
{
DataTable dt = objUserDL.getUserDetails(objUserBO);
return dt;
}
catch (Exception e)
{
throw e;
}
}
userDL.cs:
public DataTable getUserDetails(userBO objUserBO)
{
SqlConnection con = new SqlConnection(CmVar.convar);
try
{
con.Open();
DataTable dt = new DataTable();
string sql = "SELECT * from T_User_Master WHERE User_Email_ID= ' " + objUserBO.email_id + "'";
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter objadp = new SqlDataAdapter(cmd);
objadp.Fill(dt);
con.Close();
return dt;
}
catch(Exception e)
{
throw e;
}
}
当我检查Response.Write(dt.Rows.Count);
的输出时,显示的是0
,所以请帮我解决这个问题
看起来您的查询字符串在'
和"
标记之间有冗余空间。这可能会造成所有的麻烦,因为你的电子邮件占用了前面的空间。
最好使用SqlConnection在查询中添加参数。参数属性。
string sql = "SELECT * from T_User_Master WHERE User_Email_ID=@userID";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add("@userID", SqlDbType.NVarChar);
cmd.Parameters["@userID"].Value = objUserBO.email_id;