|
測試環境說明
OS:Windows XP SP3 繁體中文版 + 更新所有update
IIS版本: XP內建
dot net使用版本:2.0.50727
連接資料庫使用:OleDbConnection( Provider=sqloledb )、OleDbCommand
Sql Server版本:SQL Server 2005 Express Edtion 繁體中文版
本文目的:記錄在ASP.NET環境下如何使用OleDbCommand傳遞參數給SQL Server
本文操作範例為新增一筆資料進apply 資料表
資料表一共有uid,dept,plan_name,date,apy_type,fund1,fund2,fund3 八個欄位
其中,uid為自動新增欄位;本範例將只新增dept,plan_name兩個欄位的資料
程式碼:
- conn.open()
- dim dept,plan_name as string
- dept = Request.Form("deptcode")
- plan_name = Request.Form("plan_name")
- '注意:問號為參數使用方式,不是打錯字,也不是資料錯誤
- sqlstr = "insert into apply(dept,plan_name) values(?,?)"
- Dim cmd As New OleDbCommand(sqlstr, conn)
- cmd.Parameters.Clear()
- ' 請務必依照順序dept-->plan_name填入
- '這裡的參數名稱可以使用問號,也可以直接如下使用:
- 'cmd.Parameters.Add(New OleDbParameter("單位名稱", dept))
- 'cmd.Parameters.Add(New OleDbParameter("計畫名稱", dept))
- cmd.Parameters.Add(New OleDbParameter("?", dept))
- cmd.Parameters.Add(New OleDbParameter("?", plan_name))
- cmd.ExecuteNonQuery()
複製代碼 說明,由於OleDbCommand無法使用『@欄位名稱』 這樣的方式來傳遞參數,僅能使用問號『?』的型態來傳遞
因此在使用時,必須依照sql指令中問號的順序,依序使用Parameters.Add方法來新增
其他指令(update delete select的使用方法大同小異,只要注意問號的前後順序即可)
以上 2009.09.07 |
|