2017-06-12 40 views
3

那麼,問題的標題本身就是問題,那麼爲什麼我需要每次在sql參數名稱前寫「@」呢?爲什麼SqlParametersCollection每次在參數名稱的起始處都要求「@」?

command.Parameters.AddWithValue("@CustomerID", this.CustomerId); 

我知道這是如何使用SQL聲明參數,但不應該由框架處理,因爲它總是這樣嗎?

+2

其數據庫特定 –

+0

你的意思是數據庫特定的? – kuskmen

+0

@kuskmen每個數據庫都有自己的指定參數的方式。對於SQL Server,它是'@',而Oracle則是':'。 –

回答

1

我假設你使用Microsoft SQL Server。 MS SQL以這種方式命名其變量,因此您也需要以這種方式調用它們。

+0

是的,這是這種情況,但我可以使用其他SQL Server與'SqlParameterCollection'不同的東西嗎?我的意思是我猜每個SQL服務器中的每個參數都是相同的,對吧? – kuskmen

+0

是的,這是正確的。但@就是SQL服務器命名變量的方式。你也可以用它來聲明一個表格(這是一個變量) –

+0

原來我錯了,框架在內部處理它們,檢查我的問題下方的註釋。 – kuskmen

1

MS SQL Server中的變量名稱必須以(@)符號開頭。檢查如何declare variables in SQL獲取更多信息。

+0

這是真的,但我很好奇爲什麼我必須在.NET中自己做,因爲它總是這樣,爲什麼不是框架自己做,結果我錯了,它處理它們。 – kuskmen

相關問題