我有一個DataGrid和適配器,通過一個存儲的查詢與MSACCESS表對應的工作(名爲「UpdatePaid」,3個PARAMATERS如下圖所示),像這樣:爲什麼我需要OleDbCommand.Prepare()?
OleDbCommand odc = new OleDbCommand("UpdatePaid", connection);
OleDbParameter param;
odc.CommandType = CommandType.StoredProcedure;
param = odc.Parameters.Add("v_iid", OleDbType.Double);
param.SourceColumn = "I";
param.SourceVersion = DataRowVersion.Original;
param = odc.Parameters.Add("v_pd", OleDbType.Boolean);
param.SourceColumn = "Paid";
param.SourceVersion = DataRowVersion.Current;
param = odc.Parameters.Add("v_Projected", OleDbType.Currency);
param.SourceColumn = "ProjectedCost";
param.SourceVersion = DataRowVersion.Current;
odc.Prepare();
myAdapter.UpdateCommand = odc;
...
myAdapter.Update();
它工作正常...但真正奇怪的是,它沒有直到我把在odc.Prepare()調用。
我的問題是這樣的:在使用OleDb存儲過程/查詢時,我是否一直需要這麼做?爲什麼?我還有另一個項目,我必須用SqlDbCommand來做同樣的事情......我也必須這樣做嗎?