2015-07-21 4 views
-2

Я пытаюсь использовать функцию, чтобы проверить, существует ли почта, и я хочу вернуть имя пользователя и адрес электронной почты. Как я могу это сделать и что мне делать с моим существующим кодом? И как я могу передать имя пользователя и адрес электронной почты на страницу aspx?Возврат определенного значения из таблицы SQL Server

public static string searchEmail(string email) 
{ 
    connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
    SqlConnection conn = new SqlConnection(connectionString); 
    { 
     conn.Open(); 

     bool exists = false; 

     using (SqlCommand comm = new SqlCommand("select count(*) from Member where email = @email", conn)) 
     { 
      comm.Parameters.AddWithValue("@email", email); 
      exists = (int)comm.ExecuteScalar() > 0; 
     } 

     if (exists) 
     { 
      return "Password has been reset, please check your email box!"; 
     } 

     return null; 
    } 
} 
+0

Почему не запрашивать все данные, которые вы хотите вместо 'COUNT' и просто проверить строку с помощью' ExecuteReader' и 'Read() '? –

+1

Хранимые процедуры великолепны. – Adam

+1

Я согласен с @Adam. это было бы лучше в хранимой процедуре. Вы также должны взглянуть на эту статью. http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –

ответ

2

Вы можете использовать что-то вроде этого ...

public static Tuple<string,string> searchEmail(string email) 
{ 
    string userName = ""; 
    connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
    SqlConnection conn = new SqlConnection(connectionString); 
    { 
     conn.Open();    

     using (SqlCommand comm = new SqlCommand("select UserName from Member where email = @email", conn)) 
     { 
      SqlDataReader reader; 
      comm.Parameters.AddWithValue("@email", email); 

      reader = comm.ExecuteReader(); 
      if (reader.HasRows) 
      { 
       while (reader.Read()) 
       {         
       userName = reader.GetString(0); 
       } 
      } 
     }   
    } 
    conn.Close(); 
    return new Tuple<string,string>(email,userName); 
} 
+0

Как я могу захватить переданное значение на странице aspx? – user4725989

+0

Я не понимаю ваш вопрос ... что вы имеете в виду? – danvasiloiu

+0

Как я могу отобразить имя пользователя на странице aspx? – user4725989

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