i ment ds.tables[0].rows[4][1] - thats return me dbnull. my code is - DataSet ds = DBHelper.Retrieve("select TreeId, owner, Root, BranchTitle, BranchText, LeafText, ScreenShot, Leaf_ScreenShot from Trees"); ArrayList list = new ArrayList(); if (ds.Tables[0].Rows.Count > 0) { for (int i=0; i < ds.Tables[0].Rows.Count; i++) { Tree t = new Tree(); if (ds.Tables[0].Rows[i][1] == DBNull.Value) { t.Owner = 0; } else { t.Owner = (double)ds.Tables[0].Rows[i][1]; } list.Add(t); } } else { throw new Exception("No rows found"); } return list; and DBHelpr.Retrieve code is public static DataSet Retrieve(string Sql) { DBFactory db = DBFactory.Instance; // getting db factory object IDbConnection conn = db.connect(Constants.ConnStr); // connecting to db IDbDataAdapter adapter = db.getAdapter(Sql, conn); DataSet ds = new DataSet(); adapter.Fill(ds); // querying data and filling dataset db.disconnect(ref conn); // disconnecting from db return ds; } any hint?