views:

35

answers:

3
+3  Q: 

sql query error

i have a SQL query as follows

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

A: 

check the column whether it can accept null value or not.

Vinothbabu
i have defined the column not to accept null values,my string S has value in it but how does my sql query say cannot insert null?? i have data type for order as varchar.
+2  A: 

From the 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.

Use this:

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(); 
Quassnoi
and how to define value for '?'. how will query know what is ?
@user: add a parameter to the collection. It will know from the order it was added: the first parameter added is the first `?`, etc. It's in the quote I copied.
Quassnoi
Thank you SIR!! its working
A: 

it will be helpful to you

cmd.Parameters.Add("@S", OdbcType.Char, S);
SaifalMaluk
The best overloaded method match for 'System.Data.Odbc.OdbcParameterCollection.Add(string, System.Data.Odbc.OdbcType, int)' has some invalid arguments