如何在SQL适配器或DataTable中搜索记录



如何在数据表中搜索记录,在我的应用程序中,我有很多记录。
例如:搜索完成后,我从表格中获得了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.....
}

希望所有这些事情都可以帮助您...

相关内容

  • 没有找到相关文章

最新更新