3
我開發的Windows CE 5.0設備,我試圖連接到遠程SQL Server。但是,如果使用命令與參數,我得到異常:.Net緊湊框架SqlClient異常
{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()
...
}
代碼:
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];
而且沒有添加參數指揮它工作正常。請告訴我可能是什麼原因? (我使用VS2008,.NET精簡框架3.5)
什麼是異常消息正好過嗎?看起來你忘了在添加參數行中使用''''和'@',例如'cmd.Parameters.Add(new SqlParameter(「@ id」,1));'或者可能是一種類型的過程.. –
@SonerGönül,是的,對不起,錯過支架只是一個錯字,但不是'@'。沒有'@'的相同代碼可以在.Net Framework 3.5項目中使用(不是Compact),所以我很困惑。非常感謝) – skm
順便說一下,它是完全異常消息:消息=「SqlException」和堆棧跟蹤。 – skm