2010-05-20 2 views
2

в vb.net при вводе новой записи я хочу, чтобы назначить рекордную уникальный идентификатор , как и в случае с числовыми я сделать этот путьавтоматическая генерация идентификатор, который является первичным ключом

Dim ItemID As Integer 
KAYAReqConn.Open() 
SQLCmd = New SqlCommand("SELECT ISNULL(MAX(ItemID),0) AS ItemID from MstItem", ReqConn) 
Dim dr As SqlDataReader 

dr = SQLCmd.ExecuteReader 
If dr.HasRows Then 
    dr.Read() 
    ItemID = dr("ItemID") + 1 
End If 
dr.Close() 

в этом случае т используя itemid как уникальный идентификатор , а формат 1,2,3 ... и m узнать максимальный размер и присвоить новой записи, но как назначить, если предыдущий идентификатор имеет значения a00001, a00002, a00003, a00004 ...скоро. Как я могу создать уникальный идентификатор в этом случае

+0

Вы не можете изменить поля базы данных с varchar на int? – Himadri

ответ

0

Вам лучше использовать автоматическое инкрементное поле идентификации в базе данных для обоих этих случаев.

Для «a0001» вам все равно лучше хранить это как целое число, а если «a0000» для отображения, добавьте его в свой код. Или, возможно, иметь поле префикса для хранения части «a» - это зависит от ваших требований.

+0

как я могу написать запрос, так как у меня уже есть этот формат в моей базе данных и вы хотите найти максимальное значение из этого и назначить новое значение – abhi

+0

У меня есть id как varchar – abhi

+0

@abhi - можете ли вы его изменить? – Paddy

1

Вы можете получить все идентификаторы, доступ к нему по одному, ломают идентификатор и принимать только целую часть, найти максимум из них генерируют следующий идентификатор и concate его prefix..store это ..

Это может быть трудоемким процессом, но я не нашел другого пути.

Смежные вопросы