Vamos a lo simple: El mejor modo de manejar el problema de la transferencia de datos a una consulta es usar parámetros y dejar que los problemas de conversiones los resuelva el conector, que tiene sus propios métodos.
Código C#.Net:
Ver originalstring oSQL;
oSQL= "INSERT INTO proyectos VALUES (NULL,@vNombre , @vIdAsociado, @vIdServicos, @vFeInicio, @vFeEntrega, @vFeliberacion, @vTotal, @vPagos, @vPropuesta, @vConvenio, @vCronograma)";
MySqlCommand comando = new MySqlCommand(insert, conexion);
comando.Parameters.AddWithValue("@vNombre ", varNombre).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vIdAsociado", varIdAsociado).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vIdServicos", varIdServicos).= Direction.Input;
comando.Parameters.AddWithValue("@vFeInicio", varFeInicio).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vFeEntrega", varFeEntrega).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vFeliberacion", varFeliberacion).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vTotal", varTotal).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vPagos", varPagos).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vPropuesta", varPropuesta).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vConvenio", varConvenio).Direction = Direction.Input;
comando.Parameters.AddWithValue("@vCronograma", varCronograma).Direction = Direction.Input;
comando.ExecuteNonQuery();
Si hay algún error de sintaxis es porque habitualmente trabajo con VB.Net, y muy poco con C#.Net.
Condiciones necesarias:
1) Todas las variables deben ser del tipo preciso: Los valores monetarios deben ser Float, los de fecha Date, Los de fecha y hora DateTime, los de cadena String, los enteros Integer, etc.
2) No debe faltar ninguna variable y parámetro.
3) Los valores constantes se deben colocar dentro de la cadena del SQL.
4) NULL no se debe insertar entre apóstrofos. No es una cadena ni un valor, NULL es un estado, un puntero a la nada, y como tal no lleva comillas ni apóstrofes.
Todo este tipo de cosas se pueden consultar en el
Manual de Referencia de MySQL::20.2.4.1.4. Working with Parameters.