2013-05-30 73 views
0

数据库中有一个PilotID字段,其​​起始于1并且可以上升到9999。现在他们想让我再添加两个试点类型。 一个身份证号码从10,000开始,另一个开始于20,000ID范围和递增

他们都需要分享PilotID字段。我的问题是,一旦我创建了ID最高的飞行员,当我试图创建一个新的飞行员时,它只是想增加数据库中最高的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

是的,这是正确的。没有具体的。我试图找出如何找到每个案例的最高数字,然后从那里增加正确的类型,具体取决于会话中的providerId。 –

+0

你的一般问题是如何创建一个在给定范围内的ID? –

回答

1

如何简单地向数据库询问当前案例的最高数量,然后用1递增该结果?

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

感谢您的回复!我认为你的想法将工作@souplex –

+0

那么没有工作。还有什么想法? –

+0

假设你在控制自己创建唯一的id值而不使用自动递增值,我没有看到任何问题。 Pleun的答案是针对您的问题的更强大的解决方案如果这不适合您,我建议您探索该解决方案。 – souplex