2014-05-19 3 views
0

Я хочу указать имя пользователя после входа в систему и сказать (например) «Добро пожаловать Брюс» или «Добро пожаловать Бэтмен» что-то в этом роде. как я могу получить значение определенного столбца и отобразить его в окне сообщений? Я использую visualt Studio C# 2008 и MS SQL 2005. окна формыКак отобразить имя пользователя в окне сообщений в C#?

using (SqlConnection conn = new SqlConnection("Data Source=MJ-PC\\SQLEXPRESS;Initial Catalog=Users;Integrated Security=True")) 
      { 
       conn.Open(); 
       SqlCommand cmd = new SqlCommand("SELECT * FROM tblUsers WHERE [email protected]_Name AND [email protected]_Pass", conn); 
       cmd.Parameters.Add("@U_Name", SqlDbType.VarChar).Value = textBox1.Text; 
       cmd.Parameters.Add("@U_Pass", SqlDbType.VarChar).Value = textBox2.Text; 

       using (SqlDataReader dr = cmd.ExecuteReader()) 
       { 




        if (dr.HasRows) 
        { 
         dr.Read(); 
         int userType = Convert.ToInt32(dr["U_Type"]); 

         if (userType == 1) 
         { 
          MessageBox.Show("Login Successful"); 
          MDIParent1 settingsForm = new MDIParent1(); 
          settingsForm.Show(); 
          this.Hide(); 
         } 
         else if (userType == 2) 
         { 
          MessageBox.Show("Login Successful"); 
          MDIParent2 settingsForm = new MDIParent2(); 
          settingsForm.Show(); 
          this.Hide(); 
         } 
        } 


        else 
        { 
         MessageBox.Show("Login Failed"); 
         Outcome = Convert.ToInt32(lblOutcome.Text); 
         Outcome = Outcome - 1; 
         textBox1.Clear(); 
         textBox2.Clear(); 

         lblOutcome.Text = Outcome.ToString(); 
         if (Outcome == 0) 
         { 
          MessageBox.Show("You have reached the maximum number of trial"); 
          this.Close(); 
         } 
        } 

вот мой код

в моей базе данных у меня есть U_Name и F_Name, я хочу, чтобы отобразить F_Name

+0

показать свой код? что вы сделали для входа? – Hassan

+0

просто Messagebox.Show («Добро пожаловать»); thats it – Mark

+0

Какой конкретный столбец? Если вы хотите отобразить переменную в окне сообщения, используйте MessageBox.Show («Welcome:» + yourvar); –

ответ

1

У вас уже есть доступ к данным (при условии, что это в одна и та же строка, возвращаемая запросом), поэтому просто введите еще один MessageBox, который использует это значение:

if (dr.HasRows) 
{ 
    dr.Read(); 
    int userType = Convert.ToInt32(dr["U_Type"]); 

    MessageBox.Show("Welcome, " + dr["F_Name"].ToString()) 

    if (userType == 1) 
    { 
     MessageBox.Show("Login Successful"); 
     MDIParent1 settingsForm = new MDIParent1(); 
     settingsForm.Show(); 
     this.Hide(); 
    } 
    else if (userType == 2) 
    { 
     MessageBox.Show("Login Successful"); 
     MDIParent2 settingsForm = new MDIParent2(); 
     settingsForm.Show(); 
     this.Hide(); 
    } 
} 
+0

, разве это не просто одно всплывающее сообщение? я попробую это. спасибо Tim «Again» haha ​​ – Mark

+0

Конечно - я просто поместил его в отдельную «MessageBox» для иллюстрации. Пожалуйста, «снова». :) – Tim

+0

спасибо Тим !! : D код работал отлично hahaha его второй раз, когда вы помогли с моими кодами СПАСИБО !!! – Mark

0

You можно попробовать:

Messagebox.Show(Context.User.Identity.Name.ToString()); 

вы можете использовать разделить метод, как это, если вы хотите часть имени пользователя, как это,

Context.User.Identity.Name.ToString().Split('\\')[1] 
+0

и что такое 'Context.User.Identity.Name'? – Sayse

+0

уверен, что я попробую это прямо сейчас – Mark

+0

@Sayse Это полное имя пользователя, который просто входит в веб-приложение. –

1

Вы можете использовать указанный ниже код при успешном подключении.

MessageBox.Show("welcome "+textBox1.Text); 
+0

ahmmm, который может быть, но имя пользователя и настоящее имя иногда бывают одинаковыми, подождите, я снова обновлю вопрос – Mark

0
  1. Добавить имя пользователя в общественную статическую строку.
  2. Используйте его во всех детских формах.

    static class Program 
    { 
        public static string sCurrentUserName;   
    
        /// <summary> 
        /// The main entry point for the application. 
        /// </summary> 
        [STAThread] 
        static void Main() 
        {    
         Application.EnableVisualStyles(); 
         Application.SetCompatibleTextRenderingDefault(false); 
         Application.Run(new Form1()); 
        } 
    } 
    

В вашем методе:

if (dr.HasRows) 
{ 
     dr.Read(); 
     int userType = Convert.ToInt32(dr["U_Type"]); 

     if (userType == 1) 
     { 
      MessageBox.Show("Login Successful"); 
      MDIParent1 settingsForm = new MDIParent1(); 
      settingsForm.Show(); 
      this.Hide(); 
     } 
     else if (userType == 2) 
     { 
      MessageBox.Show("Login Successful"); 
      MDIParent2 settingsForm = new MDIParent2(); 
      settingsForm.Show(); 
      this.Hide(); 
     } 
     Program.sCurrentUserName = dr["F_Name"].ToString(); 
    } 
    else 
    { 
     Program.sCurrentUserName = string.Empty; 
     //other code 
    } 

Как использовать его в детстве Формы:

public partial class Form2: Form 
{  
    public Form2() 
    { 
    } 

    private void Form2_Load(object sender, EventArgs e) 
    { 
     if(string.IsNullOrEmpty(Program.sCurrentUserName) == false) 
      MessageBox.Show("Welcome " + Program.sCurrentUserName); 
     else 
     { 
      //do something 
     } 
    } 
} 
Смежные вопросы