Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Несколько вопросов чайника / 6 сообщений из 6, страница 1 из 1
01.03.2006, 09:02:17
    #33572461
khalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
Вопросы относятся к VB.net (VS2005 SQL server 2005)
1. Имеется таблица, в ней поля: ID и Name. Заполнить свойство Items для ComboBox значениями поля Name несложно. Но в программе нужно получить ID, а не отображаемое в ComboBox знячения поля Name. Не могу найти, как это сделать, догадываюсь что должно быть просто. Не сохранять в таблицу, а просто получить значение ID.
2. В ADO.net программа оперирует с отсоединенным набором данных. Как в этом случае обеспечивать уникальность поля Id. В программе надо сгенерироавть значение для ID, но в объекте DataSet (локальном) только выборка из таблицы, следовательно, програмой можно создать ID уникальный только для этой выборки и при выгрузке в таблицу ID может оказатся совсем не уникальным. Думаю, что этот вопрос тоже должен решаться как-то не слишком сложно.

Заранее спасибо
...
Рейтинг: 0 / 0
01.03.2006, 09:41:42
    #33572542
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
1. Используйте свойство .ItemData()
2. В Oracle для этого используются объекты Sequence. В MSSQL можно создать таблицу ключей. Таблица с тремя полями: TableName, KeyName, CurrValue. Читаем нужную запись (по имени таблицы и имени ключа), предварительно заблокировав берем значение, увеличиваем на 1, записываем обратно.
...
Рейтинг: 0 / 0
01.03.2006, 09:47:48
    #33572561
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
По второму вопросу: в таких случаях лучше использовать GUID-ы в качестве ID. Они всегда уникальны, где бы вы их не сгенерили.
...
Рейтинг: 0 / 0
01.03.2006, 10:21:35
    #33572679
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
По второму вопросу: в таких случаях лучше использовать GUID-ы в качестве ID. Они всегда уникальны, где бы вы их не сгенерили.С парой оговорок: 1) Если это (12-байтное) число - не проблема для среды в которой программируешь, и 2) если скорость работы запросов испльзующих такие числа в операторах Join не критична.
...
Рейтинг: 0 / 0
01.03.2006, 20:18:21
    #33575193
khalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
Спасибо.
1.Что-то не вижу я такого свойства у своего комбобокса :(
2. Вариант с таблицей ключей мне кажется довольно неплохим. спасибо за мысль...
...
Рейтинг: 0 / 0
02.03.2006, 09:47:08
    #33575761
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов чайника
Не заметил что вы пишете на vb.net, ну надо же!
Да, там можно использовать GUID без проблем.
Я не пишу на vb.net, поэтому первое что мне приходит в голову может и не самый красивый вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
   Public Class MyItem
      Public ID As Integer
      Public Value As String
      Public Sub New(ByVal ID_ As Integer, ByVal Value_ As String)
         ID = ID_
         Value = Value_
      End Sub

      Public Overrides Function ToString() As String
         ToString = Value
      End Function

   End Class

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      With ComboBox1.Items
         .Clear()
         .Add(New MyItem( 101 , "Сто Первый"))
         .Add(New MyItem( 2 , "Второй"))
      End With
   End Sub

   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
      Dim mi As MyItem = ComboBox1.SelectedItem
      MessageBox.Show(mi.ID.ToString)
   End Sub
А лучше спросите на форуме VB.NET
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Несколько вопросов чайника / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]