DQ NO.1 - dragon quest fans club

 找回密碼
 加入成為夥伴
搜索
熱搜: 活動 交友 discuz
查看: 10398|回復: 0

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

[複製鏈接]
發表於 2009-9-7 10:48:40 | 顯示全部樓層 |閱讀模式
測試環境說明

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兩個欄位的資料

程式碼:

  1. conn.open()
  2. dim dept,plan_name as string

  3. dept = Request.Form("deptcode")
  4. plan_name  = Request.Form("plan_name")


  5. '注意:問號為參數使用方式,不是打錯字,也不是資料錯誤
  6. sqlstr = "insert into apply(dept,plan_name) values(?,?)"

  7. Dim cmd As New OleDbCommand(sqlstr, conn)
  8. cmd.Parameters.Clear()

  9. ' 請務必依照順序dept-->plan_name填入

  10. '這裡的參數名稱可以使用問號,也可以直接如下使用:
  11. 'cmd.Parameters.Add(New OleDbParameter("單位名稱", dept))
  12. 'cmd.Parameters.Add(New OleDbParameter("計畫名稱", dept))

  13. cmd.Parameters.Add(New OleDbParameter("?", dept))
  14. cmd.Parameters.Add(New OleDbParameter("?", plan_name))

  15. cmd.ExecuteNonQuery()

複製代碼
說明,由於OleDbCommand無法使用『@欄位名稱』 這樣的方式來傳遞參數,僅能使用問號『?』的型態來傳遞
因此在使用時,必須依照sql指令中問號的順序,依序使用Parameters.Add方法來新增


其他指令(update delete select的使用方法大同小異,只要注意問號的前後順序即可)


以上 2009.09.07
您需要登錄後才可以回帖 登錄 | 加入成為夥伴

本版積分規則

Archiver|手機版|ぱふぱふ屋|DQ NO.1

GMT+8, 2024-11-24 18:37 , Processed in 0.025511 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表