Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.Net compact framework SqlClient exception

I develop for Windows CE 5.0 device and I'm trying to connect to remote SQL Server. But if I use command with parameters I get exception:

{System.Data.SqlClient.SqlException: SqlException
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior run, SqlCommand cmdHandler, SqlDataReader dataStream)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at Test.MainForm.TestConnection()
...
}

Code:

SqlConnection conn = new SqlConnection(connectionString);  
conn.Open();  
SqlCommand cmd = conn.CreateCommand();  
cmd.CommandText = "select * from table_name where id = @id";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("id", 1));
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];

And without adding parameters to command it works fine. Please suggest me what could be the reason? (I'm using VS2008, .net compact framework 3.5)

like image 954
skm Avatar asked Apr 15 '26 14:04

skm


1 Answers

put '@' before parameter name like

cmd.Parameters.Add(new SqlCeParameter("@id", 1));
like image 76
Mehul Patel Avatar answered Apr 17 '26 05:04

Mehul Patel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!