Home All Groups Group Topic Archive Search About

Updating Row value when PK is known

Author
24 Apr 2006 9:21 AM
Aziz
I am using VB.NET 2003

I have a simple Dataset DataTable (call it StockLevels) such as this:

BaseMetalCode (PK)        BaseMetalInStock
Ag                                   1000
Zn                                    700
Si                                    1300
Cu                                   2300
etc                                   etc

If know the value of the PK (Zn), how do I update the BaseMetalInStock
related field for it?

If I use:
dsDataset.StockLevels.FindByBaseMetalCode("Zn").BaseInStock =
CInt(1000)

I get this error:
Object reference not set to an instance of an object.

It's probably very easy to solve but how?

Author
24 Apr 2006 9:57 AM
Miha Markic [MVP C#]
Hi Aziz,

1. Make sure that BaseMetalCode is indeed a primary key in DataTable.
2. Check out which part of your expression yields error.

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Show quote
"Aziz" <aziz***@googlemail.com> wrote in message
news:1145870478.923675.63930@i39g2000cwa.googlegroups.com...
>I am using VB.NET 2003
>
> I have a simple Dataset DataTable (call it StockLevels) such as this:
>
> BaseMetalCode (PK)        BaseMetalInStock
> Ag                                   1000
> Zn                                    700
> Si                                    1300
> Cu                                   2300
> etc                                   etc
>
> If know the value of the PK (Zn), how do I update the BaseMetalInStock
> related field for it?
>
> If I use:
> dsDataset.StockLevels.FindByBaseMetalCode("Zn").BaseInStock =
> CInt(1000)
>
> I get this error:
> Object reference not set to an instance of an object.
>
> It's probably very easy to solve but how?
>
Author
24 Apr 2006 10:35 AM
Aziz
OK I solved that problem (forgot to fill the DataSet, doh) but now I
get:
An unhandled exception of type 'System.Data.OleDb.OleDbException'
occurred in system.data.dll

pointing to the update command.

dsDataset.StockLevels.FindByBaseMetalCode("Zn").BaseInStock =
CInt(1000)
daBaseMetalStocks.Update(dsDataset, "BaseMetalStocks")

My database PKs and XML Schema definitions are  all OK. The table is a
parent table and all my DataAdapters are filled in the correct order.
Author
24 Apr 2006 11:47 AM
Miha Markic [MVP C#]
What is the error and did you define Update/Insert/Delete commands?

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Show quote
"Aziz" <aziz***@googlemail.com> wrote in message
news:1145874952.947446.287360@i40g2000cwc.googlegroups.com...
> OK I solved that problem (forgot to fill the DataSet, doh) but now I
> get:
> An unhandled exception of type 'System.Data.OleDb.OleDbException'
> occurred in system.data.dll
>
> pointing to the update command.
>
> dsDataset.StockLevels.FindByBaseMetalCode("Zn").BaseInStock =
> CInt(1000)
> daBaseMetalStocks.Update(dsDataset, "BaseMetalStocks")
>
> My database PKs and XML Schema definitions are  all OK. The table is a
> parent table and all my DataAdapters are filled in the correct order.
>
Author
24 Apr 2006 2:47 PM
Aziz
The error is:
An unhandled exception of type 'System.Data.OleDb.OleDbException'
occurred in system.data.dll

pointing to the Update daBaseMetalStocks.Update(dsDataset,
"BaseMetalStocks")  command.

I've defined all the Update/Insert/Delete commands through the
DataAdapter configuration. I did it the same as my other tables and
they work fine. I've also tried disabling EnforceConstraints but it
makes no difference.

I've heard deleting all tables in the XML Designer and regerating the
DataSet can help, is this right?
Author
24 Apr 2006 3:05 PM
Miha Markic [MVP C#]
There should be error description (exception.Message) which should describe
the issue better.
Also there is call stack...

--
Miha Markic [MVP C#]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

Show quote
"Aziz" <aziz***@googlemail.com> wrote in message
news:1145890025.168709.236360@y43g2000cwc.googlegroups.com...
> The error is:
> An unhandled exception of type 'System.Data.OleDb.OleDbException'
> occurred in system.data.dll
>
> pointing to the Update daBaseMetalStocks.Update(dsDataset,
> "BaseMetalStocks")  command.
>
> I've defined all the Update/Insert/Delete commands through the
> DataAdapter configuration. I did it the same as my other tables and
> they work fine. I've also tried disabling EnforceConstraints but it
> makes no difference.
>
> I've heard deleting all tables in the XML Designer and regerating the
> DataSet can help, is this right?
>
Author
24 Apr 2006 3:37 PM
Aziz
After a lot of experimenting I got it working by deleting the
relationship in my Access Database. (I created a dummy table similar to
BaseMetalStocks, defined the DA and XML Schema)

But why does it not work? I have exactly the same relationships in my
XML Schema as I have in the access database. The BaseMetalStocks and
the dummy table I created are both Foreign keys in another table with a
composite PK. Is there a known issue with linking to composite PK
tables?

One last Question: will it be OK if the access database itself doesn't
have the relationship as long as the XML Schema has the relationship
defined?

AddThis Social Bookmark Button