该代码块应该是注册表格。项目有几个 表格需要相互连接。当您运行项目时 LOGIN表单首先出现在屏幕上,其两个文本框标记为 作为(用户名,密码)和两个按钮(登录,注册)。之后 注册过程,该过程会通过“插入” 发送您的所有信息 命令输入数据库的 USERStable 中,您必须输入 将“用户名”和“密码”正确插入显示的文本框中, 它们应与以下“ GetString(1)”和“ GetString(2)”匹配,并且 然后按“注册”按钮bam,您应该具有“联系表格” 在屏幕上弹出。联系人表单具有一个dataGridView,它是 应该显示 USERStable 的所有行。为了 防止用户使用错误的用户名和密码进入 while循环内的语句。可以,但是当您进入时, dataGridVew不显示任何信息。但是,如果没有while循环,它确实可以。 我不知道问题出在哪里。你有什么 建议?
我忘了指出的一件事。我还创建了一个名为USERS的类, 字段和属性:
字符串用户名;
字符串密码;
在顶部,您可以看到我已经创建了一个引用为“ us”的对象。
public partial class LOGIN : Form
{
public LOGIN()
{
InitializeComponent();
}
USERS us = new USERS();
private void button1_Click(object sender, EventArgs e)
{
CONTACTS contact = new CONTACTS(); //FORM CONTACT
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source = DESKTOP-9I0BNAS\SQLEXPRESS; Initial Catalog = CAVID; Integrated Security = True";
con.Open();
SqlCommand cmd = new SqlCommand("Select * FROM users", con);
if (con.State == ConnectionState.Closed)
{
con.Open();
}
SqlDataReader dr = cmd.ExecuteReader();
DataTable dataTable = new DataTable();
while (dr.Read())
{
us.Username = dr.GetString(1);
us.Password = dr.GetInt32(2).ToString();
if(us.Username == textBox1.Text &&
us.Password == textBox2.Text)
{
contact.Show();
dataTable.Load(dr);
contact.dataGridView1.DataSource = dataTable;
this.Hide();
break;
}
}
}
}