當我通過ADO.NET向C#程序發送參數化查詢時,出現語法錯誤。ADO.NET中參數化SQL命令的最終形式
我當然知道我的代碼中包含了什麼SQL字符串,裏面嵌入了參數名。
有沒有人知道我可以看看最後發送到DBMS的SQL字符串後,我打電話cmd.ExecuteNonQuery
?
謝謝。
編輯:
有沒有辦法看到交互式調試器或訪問日誌或者一些字符串? 爲了讓任何人重現我的確切問題,他們將不得不擁有我的數據庫,這是不會發生的。然而,由於興趣在什麼,我試圖做我發佈下面的代碼片段的細節被表示爲:
OdbcCommand cmd = new OdbcCommand();
cmd.CommandText =
@"insert into Posts (Page, Line, TimeStamp, Status) values
(@pagename, @lineno, @now, 'SAVED')";
cmd.Connection = _cn;
cmd.Transaction = transaction;
cmd.Parameters.Add(new OdbcParameter("@pagename",OdbcType.VarChar));
cmd.Parameters.Add(new OdbcParameter("@lineno",OdbcType.VarChar));
cmd.Parameters.Add(new OdbcParameter("@now",OdbcType.DateTime));
cmd.Parameters["@pagename"].Value = pageId;
cmd.Parameters["@lineno"].Value = lineId;
cmd.Parameters["@now"].Value = now;
cmd.ExecuteNonQuery();
我希望它能幫助。
再次感謝。
編輯:
它發生,我認爲「時間戳」可能是AccessSQL保留字,這很可能是語法錯誤的原因。但是,即使假設這是原因,如何以最終形式查看SQL查詢的一般問題仍然是開放的。
你也可以在這裏發佈SQL ......還有一個問題......訪問的ADO.NET提供程序是真的在SQL中使用參數名還是隻是位置參數(即問號?) – 2010-04-28 19:33:39
令我驚訝的是, TimeStamp *是一個保留字:support.microsoft.com/kb/286335 – 2010-04-29 01:21:32