选择数据视图中的随机记录
本文关键字:随机 记录 数据 视图 选择 | 更新日期: 2023-09-27 17:52:37
我有一个数据网格视图在我的窗体项目,这是充满了数据。我还有一个按钮(nextButton),点击它可以浏览这些记录。是否有一种方法,我可以从数据网格视图中选择一个随机记录,每当单击下一个按钮。
这是我填充datagridview的代码。
SqlConnection conn = new SqlConnection(connection);
SqlCommand db = new SqlCommand("select * from TblEmp where Emp_Title = 'Mr'", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);
dataAdapter = new SqlDataAdapter(db);
dataset = new DataSet();
dataAdapter.Fill(dataset, "TblEmp");
dataGridView1.DataSource = dataset.Tables["TblEmp"];
这是nextbutton的代码它遍历记录
void NextRecord()
{
if ( RecordCounter; dataset.Tables[0].Rows.Count -1)
{
RecordCounter++;
TxtDisplayQuestion.Text = dataset.Tables[0].Rows[ RecordCounter][Emp_Title].ToString();
}
}
谢谢
这样就可以了。为了避免两次选择相同的行,该方法记住最后选择的行,并在第二次选择相同的行时尝试查找新的随机行。
private Random rnd = new Random();
private int lastSelectedIndex = -1;
void RandomRecord()
{
int noRows = dataset.Tables[0].Rows.Count;
int index = rnd.Next(noRows);
while(index == lastSelectedIndex && noRows > 1) {
index = rnd.Next(noRows);
}
lastSelectedIndex = index;
TxtDisplayQuestion.Text = dataset.Tables[0].Rows[index][Emp_Title].ToString();
}
由于命名,我假设这是WinForms
,但如果我错了请纠正我。
您可以在表单的顶部定义Random
类的新实例:
var r = new Random(Environment.TickCount);
然后使用:
从网格中访问一个随机行var randomGridRow = dataGridView.Rows[r.Next(0, dataGridView.RowCount)];
或者来自DataTable
本身:
var randomTableRow = dt.Rows[r.Next(0, dt.Rows.Count)];
这个怎么样?
void NextRecord()
{
var rnd = new Random(DateTime.Now.Millisecond);
var randomNumber = rnd.Next(dataset.Tables[0].Rows.Count - 1);
TxtDisplayQuestion.Text = dataset.Tables[0].Rows[randomNumber][Emp_Title].ToString();
}