2011-02-04 24 views

Respuesta

7

Bastante sencillo. Mantenga una variable para mantener el número actual.

int incNumber = 0; 

Luego, el clic de un botón, generar la cadena de números como esto:

string nyNumber = "s" + incNumber.ToString("00"); 
incNumber++; 
+2

Creo que aún necesita incrementar el número. ;) –

+0

'incNumber ++;'? – Prisoner

4

Haz lo sugerido por Øyvind Knobloch-Bråthen pero si quieres que se haga automáticamente cuando forma es Desactivado y Activado (Vuelve al formulario y le da enfoque) entonces puede hacer algo como esto.

Esto sólo funciona si está seguro el texto en la caja siempre estará en el formato mencionado

this.Activated += (s, ev)=>{ 
     string tmp = textbox1.Text; 
     int num = String.Substring(1) as int;    
     if(nuum != null) 
     { 
      num++; 
      textbox1.Text = "s" + num.Tostring(); 
     } 
     }; 
2

Tal como dijo Øyvind Knobloch-Bråthen: realizar un seguimiento del número entero usando una variable. Sólo se debe formatear como este (Microsoft prefiere):

int incNumber = 0; 

string formattedIncNumber = String.Format("s{0:D2}", incNumber); 
incNumber++; 

o si desea hacerlo con una línea menos código:

int incNumber = 0; 

string formattedIncNumber = String.Format("s{0:D2}", incNumber++); 

Ver MSDN para una referencia completa para el formato de números enteros.

2

Un poco mejor variación de de arriba Oyvind-Knobloch-Brathen:

int incNumber=0; 
s + String.Format("{0:00}", incNumber); 
incNumber++; 

// s00, s01, s02. Si lo desea, por ejemplo, el rango de 0001-9999, sólo cambia "00" a "0000", etc.

0

Inténtelo Para la generación automática del número y automático de incremento del número:

// Stock is table name 
// metal id is unique number that is auto generated as well as auto incremented 


private void textBox9_TextChanged(object sender, EventArgs e) 
{ 
    string s = "select max(metalid)+1 from stock"; 
    SqlCommand csm = new SqlCommand(s, con); 

    con.Open(); 
    csm.ExecuteNonQuery(); 

    SqlDataReader dd = csm.ExecuteReader(); 

    while (dd.Read()) 
    { 
     int n = dd.GetInt32(0); 
     textBox1.Text = n.ToString(); 
    } 

    con.Close(); 
} 
+0

OP no se trata de bases de datos. – Neolisk

0

Otro single enfoque de la línea sería:

string sampleNum = "s" + (counter++).ToString("00"); 

Dónde contador define así:

int counter= 0; 
1

Si el componente de texto de la cadena es desconocida (con o sin un número al final de la cadena), variaciones de esta función pueden ser útiles:

 private string increment_number_at_end_of_string(string text_with_number_at_the_end) 
     { 
      string text_without_number = text_with_number_at_the_end.TrimEnd('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); 
      string just_the_number = text_with_number_at_the_end.Substring(text_without_number.Length); 

      int number = -1; 
      if (int.TryParse(just_the_number, out number)) 
      { 
       return text_without_number + (number + 1).ToString(); 
      } 
      return text_with_number_at_the_end; 
     }
-2
{ try { //madhura// SqlCommand cmd1 = new SqlCommand(@"select 'Column_name'+ REPLACE(STR(MAX(CAST(Right(Column_name,5) as int)+1),6),SPACE(1),'0') as Column_name from TabelName ", con); SqlDataAdapter da = new SqlDataAdapter(cmd1); DataTable dt = new DataTable(); da.Fill(dt); 

si (dt.Rows [0 ] ["Column_name '"]. ToString() == null) {Label1.Text = "DMBP-000001"; } else {Label.Text = dt.Rows [0] ["Column_name '"].Encadenar(); }} catch {}}

+2

¿Qué tiene que ver con la pregunta? –

Cuestiones relacionadas