2014-05-02 34 views
0

我正在使用vb.net程序進行室內使用。我一直在四處看看,並試圖瞭解使用參數化查詢的最佳方式是什麼。我見過很多地方提到@VarName將用作INSERT INTO people (FirstName,LastName) VALUES (@FName,@LName)其中每個都是它們各自的參數,但我也看到了幾個地方說,使用位置參數?用作INSERT INTO people (FirstName,LastName) VALUES (?,?)其中?的第一個參數是名字和第二個是LastName。我正在使用OpenEdge進度數據庫。區別?和VBName中的@VarName參數

這是VB.net的約定,如果有的話?他們有什麼區別?

+4

這在很大程度上取決於您向哪個數據庫系統發送查詢以及通過哪種數據訪問技術。 –

+0

爲我的數據庫系統 – PsychoData

+0

添加了標籤,我正在通過ODBC進行這些查詢 – PsychoData

回答

3

@參數用於SQL Server本機庫(使用System.Data.SqlClient庫)(或equiv:如Sybase等),但是?參數用於OLEDB(System.Data.OleDb)它們不可互換。

+0

我添加了我正在使用的系統。這不是這些。 – PsychoData

+0

您可能正在使用OLEDB連接到您的數據源,因爲它是以統一方式訪問數據的通用API。如果您沒有直接使用System.Data.OleDb,那麼我會查看文檔以查看您使用的驅動程序,以查看它推薦使用的驅動程序。 –

+0

我對Progress OpenEdge並不熟悉,但是如果它使用@作爲參數,那麼我認爲它是類似的(對於這個答案):在本機驅動程序中使用@param或?爲OLEDB驅動程序提供參數。 – TimG

相關問題