ENIX.DQ 發表於 2009-9-7 10:48:40

ASP.NET下OleDbCommand使用參數連接SQL Server

測試環境說明

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
頁: [1]
查看完整版本: ASP.NET下OleDbCommand使用參數連接SQL Server