tags:

views:

38

answers:

1

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

+3  A: 

Better to use something like:

var sqlCommandText = "insert into testcase.ishan(nmae,orders) VALUES ('9', @S)";
using (var connection = new SqlConnection())
{
    using (var command = new SqlCommand(sqlCommandText , connection))
    {
        command.Parameters.AddWithValue("@S", S);
        command.ExecuteNonQuery();
    }
}

The use of parameters prevents SQL injection. Andrews solution does not, I believe.

ExecuteNonQuery() will return the number of rows affected, if you need it.

The using statements will take care of disposing the connection properly, so afterwards, you have no open connections anymore. This is because SqlConnection implements IDisposable.

Peter
The type or namespace name 'SqlConnection' could not be found
add this using: using System.Data.SqlClient;
Dr TJ
You should reference/import/using System.Data.SqlClient. See: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx
Peter
i have already created odbc connetion
i am getting this error Column 'orders' cannot be null at System.Data.Odbc.OdbcConnection.HandleError
@user486050: have you ever set any value for `S`?
Dr TJ
indeed, if you're inserting null into a column which can't be null, you'll get an error like that
Peter