Ms访问-标签从数据库c#中放置随机值

本文关键字:随机 数据库 访问 标签 Ms | 更新日期: 2023-09-27 17:50:50

我需要从数据库中随机选择昵称,并将这些昵称显示给多个标签。

我的代码只显示一个昵称在所有这些标签,但我需要后按钮单击随机昵称,什么是在数据库中,显示在标签。

void Button1Click(object sender, EventArgs e)
        {
            OleDbConnection connection = new OleDbConnection();
            connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=names.mdb";
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = "SELECT ID,nickname FROM names where ID=3 ";
            OleDbDataReader reader = command.ExecuteReader();
            while (reader.Read()){
                label1.Text=reader["nickname"].ToString();
                label2.Text=reader["nickname"].ToString();
                label3.Text=reader["nickname"].ToString();
                label4.Text=reader["nickname"].ToString();
                label5.Text=reader["nickname"].ToString();
                label6.Text=reader["nickname"].ToString();
                label7.Text=reader["nickname"].ToString();
                label8.Text=reader["nickname"].ToString();
            }
            connection.Close(); 
        }

表单的例子http://greenlight.ucoz.lv/11cqsvX/ac_lb.png

to label1 nickname1,给昵称贴上标签;给昵称贴标签;…

请帮助我,抱歉我的英语不好

Ms访问-标签从数据库c#中放置随机值

我的想法是修改您的SQL以选择随机行,因为您当前的SQL将始终选择同一行。通过遍历每个标签,对您拥有的每个标签执行此操作。

private void button1_Click(object sender, EventArgs e)
{
  OleDbConnection connection = new OleDbConnection();
  connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=names.mdb";
  connection.Open();
  foreach (Control control in Controls)
  {
    if (control is Label)
    {
      OleDbCommand command = new OleDbCommand();
      command.Connection = connection;
      command.CommandText = "SELECT nickname FROM names ORDER BY rnd(ID)";
      OleDbDataReader reader = command.ExecuteReader();
      reader.Read();
      control.Text = reader["nickname"].ToString();
    }
  }
  connection.Close();
}

得到答案,现在我的代码是这样的

OleDbConnection connection = new OleDbConnection();
            connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=names.mdb";
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = "SELECT ID,nickname FROM names ORDER BY rnd(ID)";
            foreach (Control control in Controls)
  {
    if (control is Label)
    {
      OleDbDataReader reader = command.ExecuteReader();
      reader.Read();
      control.Text = reader["nickname"].ToString();
      reader.Close();
    }
  }
            connection.Close();
由于@MikeB