2015-09-25 3 views
0

как загрузить и разгрузить форму на C#. поэтому у меня есть 2 формы, форма входа и форма приветствия, поэтому здесь я использую сеанс, если сеанс 1, когда загрузка формы входа в систему автоматически закрывается и загружает приветственную форму.C# загрузить и разгрузить форму

Я использую этот код, но он не работает, форма входа еще открыта.

private void Login_Form_Load_1(object sender, EventArgs e) 
{ 
    string st = "1"; 
    SqlConnection conn = new SqlConnection(); 
    conn.ConnectionString = @"Data Source=GATEWAY-PC\SQLSERVER;Initial Catalog=train_system;Integrated Security=True"; 
    SqlCommand cmd = new SqlCommand("SELECT * FROM employer WHERE session='" + st + "'",conn); 
    conn.Open(); 
    SqlDataReader dr1; 
    dr1 = cmd.ExecuteReader(); 
    if (dr1.Read()) 
    { 

     string dr = dr1[2].ToString(); 
     if (dr == "1") 
     { 
      Form1 fm = new Form1(); 
      fm.Show(); 
      Login_Form lf = new Login_Form(); 
      lf.Close(); 
     } 
     else { 

     } 
    } 
    else { 

    } 
} 
+0

Будьте осторожны, ваш код выглядит так, как будто он уязвим для SQL-инъекции. –

ответ

2

this ключевое слово ссылается на текущий экземпляр класса, а также используется в качестве модификатора первого параметра метода расширения.

if (dr1.Read()) 
{ 
    string dr = dr1[2].ToString(); 
    if (dr == "1") 
    { 
     this.Close(); 
     Form1 fm = new Form1(); 
     fm.Show(); 
    } 
} 

Эта строка кода

Login_Form lf = new Login_Form(); 
lf.Close(); 

создаст совершенно новый экземпляр login_form и, таким образом, вы столкнулись с этой проблемой

+0

Все еще не работает .. форма приветствия закрыта, после закрытия формы входа в систему. –

+0

Можете ли вы показать полный код. –

+0

весь код формы входа? –

0

Если форма Войти ваш основной формой вы можете скрыть с this.hide(); в форме загрузки приветствия, а затем вы можете создать закрывающее мероприятие в своей приветственной форме, и там вы можете использовать Application.Exit();, чтобы закрыть все в своем приложении ...

if (dr1.Read()) 
{ 
    string dr = dr1[2].ToString(); 
    if (dr == "1") 
    { 
     Form1 fm = new Form1(); 
     fm.Show(); 
     this.hide(); 
    } 
} 

private void Form_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     Application.Exit(); 
    } 
Смежные вопросы