2013-05-30 3 views
0

В базе данных находится PilotID, которое начинается от 1 и может идти до 9999. Теперь они хотят, чтобы я добавил еще 2 типа пилота. Один с id начинается с 10,000, а другой начинается с 20,000.Диапазон идентификаторов и приращение

Им всем необходимо поделиться полем PilotID. Моя проблема заключается в том, что как только я создаю пилот с самым высоким ID, когда я пытаюсь создать новый, он просто хочет увеличивать максимальный идентификатор в базе данных. Вот пример одного случая. Любые предложения будут ценны.

int newpilotID = 0; 
int pecID = 10000; 
int highSeaID = 20000; 

//checking for PEC provider 
if (Session["Role"].ToString().Equals("Provider") && (Session["ProviderID"].ToString().Equals("25")))  
{ 
    sqlCN.Open(); 
    qlCOM = new SqlCommand("select f_name from t_Provider where f_Active=1 and f_ProviderID = 25 order by f_name", sqlCN); 
    sqlDR = sqlCOM.ExecuteReader(); 
    Employer.Items.Clear(); 
    while (sqlDR.Read()) 
    { 
     Employer.Items.Add(sqlDR.GetString(0)); 
    } 
    sqlDR.Close(); 
    Employer.Items[0].Selected = true; 

    sqlCOM = new SqlCommand("select f_PilotID from t_Pilot", sqlCN); 
    sqlDR = sqlCOM.ExecuteReader(); 
    while (sqlDR.Read()) 
    { 
     if (Convert.ToInt32(sqlDR.GetString(0)) > pecID) 
     { 
      pecID = Convert.ToInt32(sqlDR.GetString(0)); 
     } 
    } 
    sqlDR.Close(); 

    pecID++; 
    PilotID.Text = pecID.ToString(); 
+0

Это для MS SQL Server? Есть ли что-то конкретное только для C# 4.0? –

+0

Да, это правильно. Ничего конкретного. Я пытаюсь выяснить, как найти наибольшее число для каждого случая, а затем прирастить оттуда для правильного типа в зависимости от провайдера в сеансе. –

+0

Ваш общий вопрос, как создать идентификатор, находящийся в заданном диапазоне? –

ответ

1

Как просто запросить базу данных для текущего наивысшего числа для случая, а затем увеличить этот результат с помощью 1?

select max(id) from mytable where id between 1 and 9999 
+0

Спасибо за ответы! Я думаю, что ваша идея будет работать @souplex –

+0

Ну, это не сработало. Есть еще идеи? –

+0

Предполагая, что вы сами управляете созданием уникальных значений id, а не используя значения автоматического увеличения, я не вижу проблемы. Ответ Pleun - гораздо более надежное решение вашей проблемы. Если это не работает для вас, я предлагаю изучить это решение. – souplex

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