2010-10-28 21 views
5

Tengo una consulta SQL:SQL - "La columna no puede ser nulo"

String S = Editor1.Content.ToString(); 
    Response.Write(S);  
    string sql = "insert into testcase.ishan(nmae,orders) VALUES ('9',@S)"; 
    OdbcCommand cmd = new OdbcCommand(sql, myConn); 
      cmd.Parameters.AddWithValue("@S", S); 
      cmd.ExecuteNonQuery(); 

Error: Column 'orders' cannot be null at System.Data.Odbc.OdbcConnection.HandleError

+3

parece que se explica por sí mismo –

+0

ya tengo el valor en la cadena.pero no está llegando a la consulta sql – Ishan

+1

odbc - es esto por elección? –

Respuesta

4

Desde el manual:

When CommandType is set to Text, the .NET Framework Data Provider for ODBC does not support passing named parameters to an SQL statement or to a stored procedure called by an OdbcCommand. In either of these cases, use the question mark (?) placeholder. For example:

SELECT * FROM Customers WHERE CustomerID = ? 

The order in which OdbcParameter objects are added to the OdbcParameterCollection must directly correspond to the position of the question mark placeholder for the parameter in the command text.

Utilice esta:

string sql = "insert into testcase.ishan(nmae,orders) VALUES ('9', ?)"; 
OdbcCommand cmd = new OdbcCommand(sql, myConn); 
cmd.Parameters.AddWithValue("you_can_write_anything_here_its_ignored_anyway", S); 
cmd.ExecuteNonQuery(); 
+0

y cómo definir el valor para '?'. ¿cómo va a consultar saber qué es? – Ishan

+0

@user: agregue un parámetro a la colección. Sabrá por el orden en que se agregó: el primer parámetro agregado es el primer '?', Etc. Está en la cita que copié. – Quassnoi

+0

Gracias SIR !! su funcionamiento – Ishan

0

le será útil

cmd.Parameters.Add("@S", OdbcType.Char, S); 
+0

La mejor coincidencia de método sobrecargado para 'System.Data.Odbc.OdbcParameterCollection.Add (cadena, System.Data.Odbc.OdbcType, int)' tiene algunos argumentos inválidos – Ishan

Cuestiones relacionadas