'System.Data.DataRowView' does not contain a property ......

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am trying to bind two tables to two different list boxes

Ther tables are working as I use them on another page wth no problems

The code is as follows...

private void Page_Load(object sender, System.EventArgs e

oleDbDataAdapter2.Fill( dataSet1)
oleDbDataAdapter4.Fill( dataSet1)

listVersion.DataSource = dataSet1
listVersion.DataTextField = "version"
listVersion.DataValueField = "version"
listVersion.DataBind()

listMerchant.DataSource = dataSet1
listMerchant.DataTextField = "merchant"
listMerchant.DataValueField = "merchant"
listMerchant.DataBind()


the merchant one works fine, the versions one returns..

DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name version.

both adapters are created the same way and work fine on another page (the versions table is working as expected). I don't think its a problem with the db. If I remove the listVersion.Bind(); it will compile and run loading only the merchants list of course..

I know this is probably not enough info, but maybe other people have seen this and can point to the right direction

thanks so much !!
 
Hi,

the data is in two separate tables in the DataSet. You need to distinguish
the table to use when databinding. For example:

listVersion.DataSource = dataSet1.Tables[0];
....
listMerchant.DataSource = dataSet1.Tables[1];

not sure which way it should be as I know nothing about your data/database.
You can give tables a name when calling Fill method and access table with
that name via DataSet's Tables property.

oleDbDataAdapter2.Fill( dataSet1,"Table1");
oleDbDataAdapter4.Fill( dataSet1,"Table2");

and then respectively:

listVersion.DataSource = dataSet1.Tables["Table1"];
....
listMerchant.DataSource = dataSet1.Tables["Table2"];

--
Teemu Keiski
MCP, Microsoft MVP (ASP.NET), AspInsiders member
ASP.NET Forum Moderator, AspAlliance Columnist
http://blogs.aspadvice.com/joteke


etropic said:
I am trying to bind two tables to two different list boxes.

Ther tables are working as I use them on another page wth no problems.

The code is as follows....

private void Page_Load(object sender, System.EventArgs e)
{
oleDbDataAdapter2.Fill( dataSet1);
oleDbDataAdapter4.Fill( dataSet1);

listVersion.DataSource = dataSet1;
listVersion.DataTextField = "version";
listVersion.DataValueField = "version";
listVersion.DataBind();

listMerchant.DataSource = dataSet1;
listMerchant.DataTextField = "merchant";
listMerchant.DataValueField = "merchant";
listMerchant.DataBind();
}


the merchant one works fine, the versions one returns...

DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name version.

both adapters are created the same way and work fine on another page (the
versions table is working as expected). I don't think its a problem with the
db. If I remove the listVersion.Bind(); it will compile and run loading
only the merchants list of course...
I know this is probably not enough info, but maybe other people have seen
this and can point to the right direction ?
 
great ! I will look into that

I thought though that was only true with UNTyped dataSet, and I am using a Typed DataSet

thanks again !
 
Back
Top