台灣最大程式設計社群網站
線上人數
1673
 
會員總數:240858
討論主題:186640
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Parameters
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Parameters
價值 : 30 QP  點閱數:234 回應數:7

樓主

小強
門外漢
0 15
242 15
發送站內信

topcat, MIS2000 Lab, 史努比, 彩虹 等各位前輩大家好

想請教各位一個問題,

在連線到SQL時~~
一般會看到類似這樣的寫法
SqlConnection cn1 = new SqlConnection("連線字串");
cn1.Open();
SqlCommand cmd = cn1.CreateCommand();

SQLcommand的command字串中是有變數@id, @pwd
所以加了cmd.Parameters
cmd.CommandText = "select * from MEMBERS where LOGINNAME =@id and LOGINPWD =@pwd ";
cmd.Parameters.AddWithValue("@id", username);
cmd.Parameters.AddWithValue("@pwd", password);




但我看過有一種sqlcommand string 加變數的 寫法是
變數都打?
"select * from MEMBERS where LOGINNAME =? and LOGINPWD =? ";



我想請教這是什麼種的寫法
感恩

搜尋相關Tags的文章: [ Parameters ] ,
本篇文章發表於2017-08-08 11:44
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

MIS2000 Lab
檢舉此回應
不同的參數,搭配不同的資料庫

Oracle 請使用 :參數名稱
mySQL請用 ?參數名稱
SQL Server請用 @參數名稱
Access請用 ? (不搭配參數名稱,只有 ?符號)

可以參與這篇文章,希望有幫上忙
https://dotblogs.com.tw/mis2000lab/archive/2014/04/01/oracle_asp-net_sqldatasource_ora-00911_invalid_character.aspx
本篇文章回覆於2017-08-08 12:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵小小補充一下
如果用?為參數的方式
由於沒有指定名稱
所以,給參數的『順序』就很重要
要依序給予

^_^
本篇文章回覆於2017-08-08 13:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小強
檢舉此回應
請問兩位前輩
OLEDB是不是也是?
因為我看到OLEDB的影子~~而且該寫法是連到SQL 去撈資料~~
其實我當時就在想OLEDB和SQL到底是什麼關係
本篇文章回覆於2017-08-10 09:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
的確
OleDB For SQL
他的參數也是用?

https://msdn.microsoft.com/zh-tw/library/system.data.oledb.oledbcommand.parameters(v=vs.110).aspx


OleDB是之前的一個方式
時間介於
ODBC與現在的SqlClient之間


之前上課時聽老師說
以效能來說
建議使用SqlClient取代之前的OleDB
效能上會相對好些

^_^
本篇文章回覆於2017-08-10 09:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

史努比
檢舉此回應
oledb理論上是可以依照connection string中不同的provider來連線到各種不同的資料庫, 可以用來連access, excel, ms-sql,

但就算是oledb, 也是可以使用具名參數, 並不是使用oledb就必須得使用匿名參數, 主要還是看資料庫本身是否支援具名參數, 及匿名參數

像access就不支援具名參數, 你用了具名參數, 他也沒辦法照名稱來讀取參數內容。
本篇文章回覆於2017-08-10 10:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

史努比
檢舉此回應
看了小喵的連結, 好像真的在oledb中不能使用具名參數~~就算連到MS-SQL也不能使用具名參數
本篇文章回覆於2017-08-10 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

小強
檢舉此回應
了解了~~原來是這樣子~~感謝幾位前輩
本篇文章回覆於2017-08-10 11:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.