不使用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,所以请帮我解决这个问题

不使用c# asp.net从数据库中获取任何行数据

看起来您的查询字符串在'"标记之间有冗余空间。这可能会造成所有的麻烦,因为你的电子邮件占用了前面的空间。

最好使用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;