Page 1 of 1

OracleDataTable + RowFilter == don't work :(

Posted: Fri 23 Jan 2009 09:15
by tsv
Hi.

I have a problem with RowFilter property in OracleDataTable. If I set this my table show me nothing. Here is the code:
tWarehouseFrom = new Devart.Data.Oracle.OracleDataTable(ocWarehouseFrom);
tWarehouseFrom.Active = true;
cbWarehouseFrom.DisplayMember = "NAME_WAREHOUSE";
cbWarehouseFrom.ValueMember = "ID_WAREHOUSE";
cbWarehouseFrom.DataSource = tWarehouseFrom;
tWarehouseFrom.DefaultView.RowFilter = "ID_SHOP = " + IdShop.ToString();


but if I use this code it works fine (DataAdapter+DataSet):
odaWarehouse.Fill(dsWarehouseFrom); --
cbWarehouseFrom.DisplayMember = "NAME_WAREHOUSE";
cbWarehouseFrom.ValueMember = "ID_WAREHOUSE";
cbWarehouseFrom.DataSource = dsWarehouseFrom.Tables[0];
dsWarehouseFrom.Tables[0].DefaultView.RowFilter = "ID_SHOP = " + IdShop.ToString();

but suddenly I can't find Column by name with dsWarehouseFrom.Tables[0].Columns.IndexOf("NAME_WAREHOUSE") in this. It always returm -1. %)

Please tell me how resolve to it.

Posted: Fri 23 Jan 2009 12:32
by Shalex
Please try using our sample.
Scritp:

Code: Select all

CREATE TABLE DEPT (
  DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
  DNAME VARCHAR2(14) ,
  LOC VARCHAR2(13)
);
INSERT INTO DEPT VALUES
        (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES
        (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES
        (40,'OPERATIONS','BOSTON');
C#:

Code: Select all

      using (OracleConnection conn = new OracleConnection("Server=ora1020;port=1525;uid=xxx;pwd=xxx;")){
        
        OracleDataTable table = new OracleDataTable("select * from dept", conn);
        table.Active = true;
        table.DefaultView.RowFilter = "DEPTNO <= 20";

        ComboBox cb = new ComboBox();
        cb.Parent = this;
        cb.ValueMember = "dname";
        cb.DisplayMember = "dname";
        cb.DataSource = table;
        
        DataGridView gv = new DataGridView();
        gv.Parent = this;
        gv.DataSource = table;
        
        // the second issue

        conn.Open();
        OracleDataAdapter adapter = new OracleDataAdapter("select * from dept", conn);
        DataSet ds = new DataSet();
        adapter.Fill(ds);
        int i = ds.Tables[0].Columns.IndexOf("dname");
        MessageBox.Show(i.ToString());
      }
Does our sample work normally?

Posted: Fri 23 Jan 2009 13:04
by tsv
Shalex wrote:Please try using our sample.
using (OracleConnection conn = new OracleConnection("Server=ora1020;port=1525;uid=xxx;pwd=xxx;")){
OracleDataTable table = new OracleDataTable("select * from dept", conn);
table.Active = true;
table.DefaultView.RowFilter = "DEPTNO 22" I have 0 results, but if write "ID_SHOP>=22" then it show me all records. I think it isn't right.

Here is my code:

Code: Select all

  tWarehouseFrom = new Devart.Data.Oracle.OracleDataTable("select * from erp.v_shop_warehouse", Connection); //ocWarehouseFrom
  tWarehouseFrom.Active = true;
  tWarehouseFrom.DefaultView.RowFilter = "ID_SHOP>=" + IdShop.ToString();
  cbWarehouseFrom.DisplayMember = "NAME_WAREHOUSE";
  cbWarehouseFrom.ValueMember = "ID_WAREHOUSE";
  cbWarehouseFrom.DataSource = tWarehouseFrom;
Try your sample with "=" not "=".

Posted: Fri 23 Jan 2009 13:45
by Shalex
It works fine in any case: "=","","",">=","<=". I've checked its work on the 5.0.20 version of dotConnect for Oracle.

Please tell me how I should modify our sample to reproduce the problem.

Posted: Fri 23 Jan 2009 14:07
by tsv
Shalex wrote:It works fine in any case: "=","","",">=","<=". I've checked its work on the 5.0.20 version of dotConnect for Oracle.

Please tell me how I should modify our sample to reproduce the problem.
I use Mobile version of dotConnect (Win CE 5.0), may be here is the reason? I just downloaded new version. Result is the same.

Posted: Fri 23 Jan 2009 15:25
by Shalex
dotConnect for Oracle Mobile 5.00.20.2 is checked. You can see your current version here: Tools | Oracle Mobile | About dotConnect for Oracle.
DataGrid shows correct values from the Dept table in any case. How should we modify our sample to reproduce the problem?

Posted: Mon 26 Jan 2009 07:08
by tsv
Shalex wrote:dotConnect for Oracle Mobile 5.00.20.2 is checked. You can see your current version here: Tools | Oracle Mobile | About dotConnect for Oracle.
DataGrid shows correct values from the Dept table in any case. How should we modify our sample to reproduce the problem?
I have 5.0.20.2 too.
Yes, datagrid show me filtered rows, but why combobox not, I don't understand. %)

I'll do it with the second issue. It works. Thank you for help.

Posted: Mon 26 Jan 2009 11:24
by Shalex
We have reproduced the problem with the combobox in dotConnect for Oracle Mobile. It is fixed. Look forward to the next build that will be available in 2 weeks.