ciao, devo controlla un campo dove il suo contenuto deve rientrare in un certo pettern.. ad es. devo controllare un codice fiscale e faccio in questo modo:
codice:
Regex expcodfisc = new Regex("^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$");	
if(expcodfisc.Match(tcdf.Text).Success==false)
{
	if(tcdf.Text=="")
	{
	return true;
	}
MessageBox.Show("Il CODICE FISCALE non è formalmente corretto.\n Un codice fiscale corretto deve rispettare la forma di: 16 caratteri alfanumerici ordinati.","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);

return false;
}
Il mio problema non è l'espressione regolare, ma l'if. Infatti devo dare la possibilità che questo campo possa essere lasciato vuoto, quindi controllo innanzitutto se il contenuto del campo cdf soddisfa l'espressione regolare, ma all'interno di questo controllo, controllo (scusate il gioco di parole) anche se il campo è vuoto, e se è vuoto passo al controllo successivo dando per buono questo (return true).. Purtroppo non ottengo il risultato sperato.. quando clicco sul pulsante dove faccio questi controlli, non ottengo nessun messaggio ma nemmeno l'azione desiderata (inserimento nel database)..
devo in pratica per forza compilare anche il campo del codice fiscale
Siccome faccio + di un controllo vi invio l'intero codice, magari qualcuno di voi intercetta un errore in altre righe che mi porta questi problemi.. :
codice:
		//VALIDAZIONE CAMPI
	private bool validationField()
	{
			//controllo dei campi obbligatori
			if(tnome.Text==""||tcognome.Text==""||taa.Text==""||tcittares.Text==""||tveicolo.Text==""||tcolore.Text==""||tmarca.Text==""||tmodello.Text==""||tcilind.Text==""||ttelaio.Text=="")
			{
		MessageBox.Show("Alcuni campi sono OBBLIGATORI e non possono essere lasciati vuoti. I campi Obbligatori sono:\nNome - Cognome - Anno di nascita - Città di residenza - Tipo veicolo - Colore - Marca - Modello - Cilindrata - Codice telaio","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);
				// errorProvider1.SetError(label1,"Alcuni campi di testo sono stati lasciati vuoti");
				
				return false;
			}
			//controllo dei campi testuali
		Regex exptestuale = new Regex("^[A-Z'ÓÒÁÀÈÉÙÚ]+$");	
		if(exptestuale.Match(tnome.Text).Success==false || exptestuale.Match(tcolore.Text).Success==false)
			{//|| exptestuale.Match(tcognome.Text).Success==false
			MessageBox.Show("Alcuni campi devono contenere solo caratteri ALFABETICI, Nessun numero!\nSono Accettati inoltre i caratteri speciali quali: { ' - à - ò - è - ù }\nI campi di tipo Testuale sono:\nNome - Cognome - Colore","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);
				return false;
			}
			//controllo dei campi numerici
		Regex expnumerica = new Regex("^[0-9]+$");	
		if(expnumerica.Match(tcilind.Text).Success==false || expnumerica.Match(ttel.Text).Success==false || expnumerica.Match(tfax.Text).Success==false)
		{
			if(ttel.Text=="" || tfax.Text=="")
			{
			return true;
			}
			MessageBox.Show("Alcuni campi devono contenere solo caratteri NUMERICI, Nessun testo!\nI campo di tipo Numerico sono:\nCilindrata - Telefono - Fax","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);
			return false;
		}
	
		//controllo del campo partita iva
		Regex expiva = new Regex("^\\d{11}$");	
		if(expiva.Match(tpiva.Text).Success==false)
		{
			
			if(tpiva.Text=="")
			{
				return true;
			}
			MessageBox.Show("Il campo PARTITA IVA deve contenere solo 11 NUMERI.","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);
			return false;
		}
		
		//controllo del campo codice fiscale
		Regex expcodfisc = new Regex("^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$");	
		if(expcodfisc.Match(tcdf.Text).Success==false)
		{
			if(tcdf.Text=="")
			{
				return true;
			}
			MessageBox.Show("Il CODICE FISCALE non è formalmente corretto.\n Un codice fiscale corretto deve rispettare la forma di: 16 caratteri alfanumerici ordinati.","Errori riscontrati",MessageBoxButtons.OK,MessageBoxIcon.Warning);
			return false;
		}



		if(lblId.Text!="")
		{
			//INSERIMENTO SOLO DEL CICLOMOTORE
			string Id=lblId.Text;
			string	connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password=";
			string queryCiclomotore = "INSERT INTO ciclomotori(Cliente,Tipo_veicolo,Colore,Marca,Modello,Cilindrata,Cod_telaio,Targa,Note_ciclomotore) VALUES("+Id+",'"+tveicolo.Text.Replace("'","''")+"','"+tcolore.Text.Replace("'","''")+"','"+tmarca.Text.Replace("'","''")+"','"+tmodello.Text.Replace("'","''")+"',"+tcilind.Text+",'"+ttelaio.Text+"','"+ttarga.Text+"','"+tnote.Text.Replace("'","''")+"')";
			MySqlConnection myconn = new MySqlConnection(connstring);
			MySqlCommand cmdciclomotore = new MySqlCommand(queryCiclomotore);
				
			cmdciclomotore.Connection = myconn;
			myconn.Open();
				
			cmdciclomotore.ExecuteNonQuery();
			cmdciclomotore.Connection.Close();
			MessageBox.Show("INSERIMENTO NUOVO CICLOMOTORE ASSOCIATO AD UTENTE PREESISTENTE RIUSCITO!.","Inserimento riuscito",MessageBoxButtons.OK,MessageBoxIcon.Information);
		
				}	
					else
		
				{
			//INSERIMENTO NUOVO CLIENTE E CICLOMOTORE
			string giorno =(string) tgg.SelectedItem;
			string mese = (string)tmm.SelectedItem;
			string anno = taa.Text;
			string datanascita = giorno +"/"+mese+"/"+anno; 
		
			string	connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password=";
				
			string queryCliente="INSERT INTO clienti(Nome,Cognome,Birth_date,Luogo_nascita,Res_city,Address,Cod_fisc,Partita_iva,Num_tel,Num_fax,Note_cliente) VALUES('"+tnome.Text.Replace("'","''")+"' ,'"+ tcognome.Text.Replace("'","''") +"','"+ datanascita + "','"+tluogonascita.Text.Replace("'","''")+"','"+tcittares.Text.Replace("'","''")+"','"+tvia.Text.Replace("'","''")+"','"+tcdf.Text+"','"+tpiva.Text+"','"+ttel.Text+"','"+tfax.Text+"','"+tnoteclient.Text.Replace("'","''")+"')";
				
			//inserisco il record per il cliente
			MySqlConnection conn = new MySqlConnection(connstring);
			MySqlCommand cmdcliente = new MySqlCommand(queryCliente);
			conn.Open();
			cmdcliente.Connection = conn;
			cmdcliente.ExecuteNonQuery();
			cmdcliente.Connection.Close();
				
			//recupero l'ultimo record inserito e inserisco il ciclomotore con l'id recuperato
			//LAST_INSERT_ID() E' UNA FUNZIONE INTRINSECA DI MYSQL QUINDI NON STANDARD
			string qselectionlastid="SELECT LAST_INSERT_ID() FROM clienti";
			MySqlConnection readerconn = new MySqlConnection(connstring);
			MySqlCommand cmdselectlastid = new MySqlCommand(qselectionlastid,readerconn);
			MySqlDataReader reader;
			readerconn.Open();
			reader=cmdselectlastid.ExecuteReader();
				
			if(reader.Read())
			{
				uint Idc = (uint) reader.GetInt32(0);
				//string	connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password=";
				string queryCiclomotore = "INSERT INTO ciclomotori(Cliente,Tipo_veicolo,Colore,Marca,Modello,Cilindrata,Cod_telaio,Targa,Note_ciclomotore) VALUES("+Idc+",'"+tveicolo.Text.Replace("'","''")+"','"+tcolore.Text.Replace("'","''")+"','"+tmarca.Text.Replace("'","''")+"','"+tmodello.Text.Replace("'","''")+"',"+tcilind.Text+",'"+ttelaio.Text+"','"+ttarga.Text+"','"+tnote.Text.Replace("'","''")+"')";
				MySqlConnection myconn = new MySqlConnection(connstring);
				MySqlCommand cmdciclomotore = new MySqlCommand(queryCiclomotore);
				
				cmdciclomotore.Connection = myconn;
				myconn.Open();
				
				cmdciclomotore.ExecuteNonQuery();
				cmdciclomotore.Connection.Close();
				MessageBox.Show("INSERIMENTO NUOVO CLIENTE RIUSCITO!.","Inserimento riuscito",MessageBoxButtons.OK,MessageBoxIcon.Information);
				
			}
			reader.Close();
			readerconn.Close();
		}
		
	return true;
	}