Click here to Skip to main content
15,613,873 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm using vb 2005 with sql 2005

I've a table created in sql 2005 with a primary key. I'm imported the data in my dataset.

On my form I want VB to automatically prevent modification of the primary key field for an existing record.

how can this be done


Without knowing how you've displayed your data, it's hard to say. The easiest way though is to not show the primary key. I've rarely encountered a situation where the key provides any value for the user, so they should not care about it - which means they don't need to see it.
Share this answer
Marc A. Brown 12-May-11 11:37am    
Good answer.
fez1 12-May-11 11:47am    
let's say that the client code is the primary key and it is displayed on the screen. The user has the choice to query by the client code and the same screen is used for creating new clients and for viewing existing ones
Pete O'Hanlon 12-May-11 11:50am    
You need to provide validation logic then and prevent the update based on this. If the primary key is already defined, then you should disable the entry field and only let it be enabled if there's no key already present. That's a simple boolean check.
[no name] 13-May-11 2:00am    
There are times where user has to see the primary keys, the better options is to disable the column for further editing
Pete O'Hanlon 13-May-11 2:10am    
How many systems have you built where the key offers any real value to the user. When it's an identity value it has no real business value to the user so it should not be shown.
Hi fez1,
It is totally depends on the way in which you retrieve the data, if you go with any of the 'typed data set' approaches like Object data source, it automatically mark primary key field are 'read only'
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900