2015-07-16 1 views
0

Я не могу получить данные строки из базы данных с помощью C# asp.net. Я пытаюсь извлечь данные из одной строки из моей БД, но она не возвращает ни одной строки. Я использую для этого 3-шинную архитектуру, и я объясняю свои код ниже.Не получать данные о строках из базы данных с помощью C# asp.net.

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. Поэтому, пожалуйста, помогите мне решить эту проблему.

+0

профилирование дб вызов, вероятно, ваш след будет выявить эту проблему – InferOn

+0

Во-первых, вопрос - это 'User_Email_ID' определенно хранить адрес электронной почты? –

+0

@ Infer-On: можете ли вы отредактировать ответ. – satya

ответ

2

Похоже, что ваша строка запроса имеет избыточное пространство между ' и ". Это может вызвать все проблемы, так как ваша электронная почта получает пространство впереди.

Это, конечно, лучше добавить параметры к вашему запросу с использованием свойства SqlConnection.Parameters.

string sql = "SELECT * from T_User_Master WHERE [email protected]"; 
SqlCommand cmd = new SqlCommand(sql, con); 
cmd.Parameters.Add("@userID", SqlDbType.NVarChar); 
cmd.Parameters["@userID"].Value = objUserBO.email_id; 

 Смежные вопросы

  • Нет связанных вопросов^_^