2016-11-08 71 views
-1

我设计了一个登录表单,并使用了combobox1,textbox1,textbox2和button。当我在组合框中选择“管理员”时,如果用户名和密码正确,则将从数据库的管理员表中检查textbox1和textbox2中的用户名和密码,然后显示管理员窗体。如何在组合框选定项目中的数据库中插入文本框值?

我该怎么做?

代码:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedText == "Admin") 
    { 
     SqlCommand cmd = new SqlCommand("select * from Admin"); 
     SqlDataReader dr = cmd.ExecuteReader(); 

     if (dr.Read()) 
     { 
      textBox1.Text = dr["Username"].ToString(); 
      textBox2.Text = dr["Password"].ToString(); 
      Admin ad = new Admin(); 
      ad.ShowDialog(); 
     } 
    } 
} 
+4

试一下先,然后显示代码的例子来解释你在哪里卡住了或者出了什么差错 –

+0

您可以在下拉列表访问所选项目的值。根据这个值,更改你的SQL。 –

+0

管理员表单未打开。 – Ganesh

回答

-1

你不想选择的文本作为您的支票,你想SelectedItem - 这是因为Button_Click事件从盒子删除焦点,有效地取消其中的任何文本。

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedItem.ToString() == "Admin") 
    { 
     SqlCommand cmd = new SqlCommand("select * from Admin"); 
     SqlDataReader dr = cmd.ExecuteReader(); 

     if (dr.Read()) 
     { 
      textBox1.Text = dr["Username"].ToString(); 
      textBox2.Text = dr["Password"].ToString(); 
      Admin ad = new Admin(); ad.ShowDialog(); 
     } 
    } 
} 
+0

嘿,非常感谢你,它的工作。 – Ganesh

+0

由于正在设置textBox1和textBox2的文本,所以这仍然不正确。他们没有被检查为平等,这大概是这个练习的全部,检查是否有人是管理员。 – sr28

0

基于您的代码,你实际上是试图从你的数据库中有值设置的textbox1textbox2值。我猜你实际上是在检查他们是否平等?

如果是这样,您最好修改您的查询,以便仅根据用户输入的详细信息返回管理员的详细信息,而不是返回管理表中的所有内容。

此外,根据Alfie Goodacre的回答,您需要SelectedItem

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedItem.ToString() == "Admin") 
    { 
     SqlCommand cmd = new SqlCommand("select * 
             from Admin 
             where Username = @UN and 
               Password = @PW"); 

     var unParam = new SqlParameter("@UN", SqlDbType.VarChar); 
     unParam.Value = textbox1.text; 
     cmd.Parameters.Add(unParam); 

     var pwParam = new SqlParameter("@PW", SqlDbType.VarChar); 
     pwParam.Value = textbox2.text; 
     cmd.Parameters.Add(pwParam); 

     SqlDataReader dr = cmd.ExecuteReader(); 

     //check if any data has returned based on the user inputs 
     if (dr.HasRows) 
     { 
      if (dr.Read()) 
      { 
       Admin ad = new Admin(); ad.ShowDialog(); 
      } 
     } 
    } 
} 
+0

谢谢。它对我的应用程序很有用。 – Ganesh

+0

@AjitNimbalkar - 如果这回答了您的问题,请点击问题旁边的勾号将其标记为正确答案。 – sr28

相关问题