Composite DataKeyField?

I

Ismail Rajput

Is there any option we can use Composite DataKeyField in the DataList and
DataGrid?
 
M

Marshal Antony

Ismail,
If I understand correctly,you need to use a DataKeyField with both catid
and prodid information.
This may not be the straight forward way but here is how you can do this.
In your sql concatenate two of these columns which you want as composite
key separated by a charater say /.
For eg: in SQL Server
Select (catid + '/' + prodid) as catid_prodid,..........from
table_name
Set the DataKeyField as catid_prodid and do a split
to separate them before you make your UPDATE statement.
string[] compositecols=cateidprodid.Split('/');
compositecols[0] and compositecols[1] will have catid and prodid
respectively.
There might be some other way which I am not sure.
Hope this helps.
Regards,
Marshal Antony
..NET Developer
http://www.dotnetmarshal.com
 
I

Ismail Rajput

As Composite Key concept says that there can
be more than one primary keys in a database table .

I want two different columns to store two primary keys and both of them make
composite key in my database

here we can have only one key
Dim productID As String =
MyDataList.DataKeys(MyDataList.SelectedItem.ItemIndex)


CategoryID and ProductID together make composite key in my database.I faced
this problem when updating database record having composite key ,

i give you more detail
catid = 001 prodid =001
catid = 001 prodid =002
catid=002 prodid =001

If you look in primary keys , records are repeating but as composite they
are not .

if i update record with prodid then i will have two records updated .
 
I

Ismail Rajput

Marshal ,

Thanks and yes you got correctly as i wanted it to be understood
..I think this is the best possible way ,the way you told me to do this.


Marshal Antony said:
Ismail,
If I understand correctly,you need to use a DataKeyField with both catid
and prodid information.
This may not be the straight forward way but here is how you can do this.
In your sql concatenate two of these columns which you want as composite
key separated by a charater say /.
For eg: in SQL Server
Select (catid + '/' + prodid) as catid_prodid,..........from
table_name
Set the DataKeyField as catid_prodid and do a split
to separate them before you make your UPDATE statement.
string[] compositecols=cateidprodid.Split('/');
compositecols[0] and compositecols[1] will have catid and prodid
respectively.
There might be some other way which I am not sure.
Hope this helps.
Regards,
Marshal Antony
.NET Developer
http://www.dotnetmarshal.com


Ismail Rajput said:
As Composite Key concept says that there can
be more than one primary keys in a database table .

I want two different columns to store two primary keys and both of them make
composite key in my database

here we can have only one key
Dim productID As String =
MyDataList.DataKeys(MyDataList.SelectedItem.ItemIndex)


CategoryID and ProductID together make composite key in my database.I faced
this problem when updating database record having composite key ,

i give you more detail
catid = 001 prodid =001
catid = 001 prodid =002
catid=002 prodid =001

If you look in primary keys , records are repeating but as composite they
are not .

if i update record with prodid then i will have two records updated .

DataList
and
 

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

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top