首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标签--从数据库c#中随机放置值

标签--从数据库c#中随机放置值
EN

Stack Overflow用户
提问于 2015-05-26 15:17:52
回答 2查看 507关注 0票数 2

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

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

代码语言:javascript
复制
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(); 
        }

表格lb.png示例

label1 nickname1,label2 nickname26,label3 nickname78,.

请帮助我,并为我糟糕的英语道歉:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-26 21:18:19

得到答案,现在我的代码看这个

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2015-05-26 15:25:56

我的想法是将您的SQL修改为select a random row,因为当前的SQL总是选择同一行。通过遍历每个标签,对每个标签执行此操作。

代码语言:javascript
复制
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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30462575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档