如何在数据表中搜索记录,在我的应用程序中,我有很多记录。
例如:搜索完成后,我从表格中获得了1000个记录,现在我想仅对此搜索记录进行第一个,下一个,上一个和最后的记录导航。我该怎么做,我已经完成了正常导航(直接连接到SQL),但是在搜索记录中显示导航方面遇到了一些困难。
尝试此
var results = from myRow in myDataTable.AsEnumerable()
where myRow.Field<int>("RowNo") == 1
select myRow;
在这里,我假设您已将数据获取到 dataTable 使用>" fetchData()" method。
// Global variable
DataTable dt_rec = new DataTable();
int rowCount = 1;
int lastRowNum = 0;
在form_load事件中,您称为" fetchData()" 方法。在此之后,您单击" Next" 按钮单击事件,看起来像这样。
private void NextButton_Click(System.Object sender, System.EventArgs e)
{
if (lastRowNum > rowCount) {
rowCount = rowCount + 1;
setControlValue(dt_rec.Rows(rowCount - 1));
} else {
Interaction.MsgBox("Record Not Found", "Test");
}
}
这是"上一个" 按钮单击事件。
private void Previous_Click(System.Object sender, System.EventArgs e)
{
if (rowCount > 1) {
rowCount = rowCount - 1;
setControlValue(dt_rec.Rows(rowCount - 1));
} else {
Interaction.MsgBox("Record Not Found", "Test");
}
}
这是的单击事件" first" 按钮。
private void FirstButton_Click(System.Object sender, System.EventArgs e)
{
if (rowCount != 1) {
rowCount = 1;
setControlValue(dt_rec.Rows(0));
} else {
Interaction.MsgBox("Record Not Found", "Test");
}
}
最后" last" 单击事件。
private void LastButton_Click(System.Object sender, System.EventArgs e)
{
if (rowCount < lastRowNum) {
rowCount = lastRowNum;
setControlValue(dt_rec.Rows(lastRowNum - 1));
} else {
Interaction.MsgBox("Record Not Found", "Test");
}
}
在这里,您可以找到将设置控制值的 setControlvalue()方法。对于exa。
public void setControlValue(DataRow dr)
{
if (!string.IsNullOrEmpty(dr["UserId"])) {
txtUserName.Text = dr["UserId"].ToString();
}
if (!string.IsNullOrEmpty(dr["WebUrl"])) {
txtWebUrl.Text = dr["WebUrl"].ToString();
}
// and so on.....
}
希望所有这些事情都可以帮助您...