Mi trovo in questa situazione:
debbo recuperare dei dati da un un file dbf, usando System.Data.OleDb, di cui non conosco il tipo della chiave, numerica o stringa.

SELECT CAMPO FROM TABELLA WHERE CHIAVE = "123" va in errore se chiave è numerica.

Ho risolto come da codice, ma mi chiedevo se si potesse risolvere in modo diverso senza il Try-Catch

ciao

codice:
Dim stringa As Boolean = True
Try
	sql = String.Format("select * from {0} where {1} = ""{2}"" ", dbf_name, campo_chiave, p_key)
	dt1 = msole.GetDataTable(con, sql)
	r1 = dt1.Rows(0)

Catch ex As Exception
	stringa = False

End Try

If Not stringa Then
	sql = String.Format("select * from {0} where {1} = {2} ", dbf_name, campo_chiave, p_key)
	dt1 = msole.GetDataTable(con, sql)
	r1 = dt1.Rows(0)
End If