2010-10-28 19 views
5

Ho una query SQL:SQL - "Colonna non può essere nullo"

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

mi sembra autoesplicativo –

+0

ho già un valore nella stringa.but non sta entrando in sql query – Ishan

+1

odbc - è questo per scelta? –

risposta

4

Dal 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.

Utilizzare questa:

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

e come definire il valore per "?". come saprà sapere qual è? – Ishan

+0

@user: aggiunge un parametro alla raccolta. Saprà dall'ordine in cui è stato aggiunto: il primo parametro aggiunto è il primo '?', Ecc. È nella citazione che ho copiato. – Quassnoi

+0

Grazie SIR !! funziona – Ishan

0

ti sarà utile

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

La migliore corrispondenza del metodo sovraccarico per 'System.Data.Odbc.OdbcParameterCollection.Add (string, System.Data.Odbc.OdbcType, int)' ha alcuni argomenti non validi – Ishan

Problemi correlati