problem: ds.Tables ["xx"].Columns ["xx"] always returns null

B

Brian

This is causing me to not be able to create a relation in my dataset.
Here's my code:

dc1 = ds.Tables ["categories"].Columns ["ID"];
dc2 = ds.Tables ["subcategories"].Columns ["Category_ID"];
dr1 = new System.Data.DataRelation ("categories2subcategories", dc1,
dc2);
ds.Relations.Add (dr1);

dc1 always works fine. dc2 always returns null. There ARE records in
the dc2 table. Any idea why it's returning null?

I can't find any documentation anywhere about this. :(

Thanks in advance for any help.

-Brian
 
N

Nicholas Paldino [.NET/C# MVP]

Brian,

Are you saying that the value returned by the call to the indexer of the
object returned by the Columns property returns null? Or do you mean
something else?
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi Brian,
dc2 = ds.Tables ["subcategories"].Columns ["Category_ID"];

Is this the line with the "issue"
if it's so it;s because the column "Category_ID" does not exist in the
"subcategories" table. Check the definition of the table.

Cheers,

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation

Brian said:
This is causing me to not be able to create a relation in my dataset.
Here's my code:

dc1 = ds.Tables ["categories"].Columns ["ID"];
dc2 = ds.Tables ["subcategories"].Columns ["Category_ID"];
dr1 = new System.Data.DataRelation ("categories2subcategories", dc1,
dc2);
ds.Relations.Add (dr1);

dc1 always works fine. dc2 always returns null. There ARE records in
the dc2 table. Any idea why it's returning null?

I can't find any documentation anywhere about this. :(

Thanks in advance for any help.

-Brian
 
B

Brian Kiser

Hi, Ignacio. Yes, that's the line. The Category_ID field is definitely
in the (Access) table.

It's not a primary key, however. There aren't any rules saying
Category_ID must be the pk, are there? I can't figure out why this line
returns null...



--------------------
Hi Brian,
dc2 = ds.Tables ["subcategories"].Columns ["Category_ID"];

Is this the line with the "issue"
if it's so it;s because the column "Category_ID" does not exist in the
"subcategories" table. Check the definition of the table.

Cheers,
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi Brian,

It should be the PK in the category table, but that's not the problem
though.

if that line return null is cause the column is not found in the table, use
the watch to see if it does exist, check que query that you use to generate
the table, somewhere somehow you are not getting that column from the access
DB.


Cheers,

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation


Brian Kiser said:
Hi, Ignacio. Yes, that's the line. The Category_ID field is definitely
in the (Access) table.

It's not a primary key, however. There aren't any rules saying
Category_ID must be the pk, are there? I can't figure out why this line
returns null...



--------------------
Hi Brian,
dc2 = ds.Tables ["subcategories"].Columns ["Category_ID"];

Is this the line with the "issue"
if it's so it;s because the column "Category_ID" does not exist in the
"subcategories" table. Check the definition of the table.

Cheers,
 
B

Brian Kiser

I'll do some more tracing and try to pinpoint the problem further.

It can't be the pk because it's actually the fk to the Category table.
I'm trying to establish a relationship between the Categories and
Subcategories tables, and it's a 1-to-many relationship, so I can't use
the two pk's from each table.

The interesting thing is, if I substitute the REAL pk of Subcategories
in the statement, instead of "Category_ID", then I don't get any errors.
It doesn't work correctly, because the relationship must be
Categories.pk --> Subcategories.fk, but the statement returns something
other than null.

Weird.


---------------
Hi Brian,

It should be the PK in the category table, but that's not the problem
though.

if that line return null is cause the column is not found in the table,
use
the watch to see if it does exist, check que query that you use to
generate
the table, somewhere somehow you are not getting that column from the
access
DB.


Cheers,
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi Brian,
It can't be the pk because it's actually the fk to the Category table.

That's what I meant, sorry for not specify it.

The interesting thing is, if I substitute the REAL pk of Subcategories
in the statement, instead of "Category_ID", then I don't get any errors.

Again, let's focus in your current problem, it's not a matter of
relationship, but it's that the column is not found in the Colums collection
of the table.


Cheers,
 
B

Brian Kiser

Wahoo... I have that fixed now. You are the one that put me onto the
solution. I did have the field in my table, but because of a typo, it
wasn't getting into my dataset.

So thanks *very much* for that! I appreciate the help.

Now my problem is that the field is a foreign key to the Categories
table. Category.pk <-->> Subcategories.fk

So there's no way I can use Subcategories.pk for the relationship.


---------
Again, let's focus in your current problem, it's not a matter of
relationship, but it's that the column is not found in the Colums
collection
of the table.


Cheers,
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi ,
Now my problem is that the field is a foreign key to the Categories
table. Category.pk <-->> Subcategories.fk

So there's no way I can use Subcategories.pk for the relationship.

You don;t need it, just create the DataRelation between the two columns.

Cheers,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top