我需要从数据库中选择随机昵称,并将这些昵称显示给多个标签。
我的代码在所有这些标签中只显示一个昵称,但我需要在按钮后单击随机昵称,数据库中的是什么,标签中显示什么。
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,.
请帮助我,并为我糟糕的英语道歉:)
发布于 2015-05-26 21:18:19
得到答案,现在我的代码看这个
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
发布于 2015-05-26 15:25:56
我的想法是将您的SQL修改为select a random row,因为当前的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();
}https://stackoverflow.com/questions/30462575
复制相似问题