有选择地填充数据集

时间:2009-02-09 20:49:31

标签: c# database .net-3.5

我需要根据几个标志更改从数据库中获取的行。我怎样才能做到这一点?我目前的代码是这样的:

this.tblTenantTableAdapter.Fill(this.rentalEaseDataSet.tblTenant);

如果我只想要id大于50的行,我该怎么做?

修改

访问数据库的代码是很久以前原始程序员通过VisualStudio自动生成的。我不知道如何从自动生成的代码获得连接。如果我能做到这一点,我知道如何使用SqlDataAdapter

4 个答案:

答案 0 :(得分:2)

为什么不在SQL查询中使用WHERE子句?

此外,我希望您不要将ID字段用于此类内容。如果您只想要前50个选项,您可能需要使用TOP 50子句或类似的东西。

有关如何使用TableAdapter执行此操作的一些信息:http://www.shiningstar.net/ASPNet_Articles/DataSet/DataSetProject7.aspx

答案 1 :(得分:1)

在服务器端,您可以使用格子旧SQL:

SELECT * FROM TBLTENANT WHERE id > 50

在客户端:

rentalEaseDataSet.tblTenant.DefaultView.RowFilter = "id > 50";

答案 2 :(得分:0)

我认为最简单的方法是使用WHERE子句更改幕后运行的SQL查询。

答案 3 :(得分:0)

您的TableAdapter需要将CommandText指定给带有WHERE子句的SQL查询。

    private void InitCommandCollection() {
        this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1];
        this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
        this._commandCollection[0].Connection = this.Connection;
        this._commandCollection[0].CommandText = @"SELECT * FROM MyTable WHERE ID >50;";
        this._commandCollection[0].CommandType = global::System.Data.CommandType.Text;
    }

注意:以上查询只是一个示例,不是解决方案查询。上述代码的格式用于编辑生成的表适配器设计器类的InitCommandCollection()方法,以便您可以指定自己的SQL。你的类可能已经有了一些SQL,在这种情况下你可以改变它。