成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server 2008中使用DataTable作為存儲過程的參數

數據庫 SQL Server
本文我們主要介紹了SQL Server 2008中使用DataTable作為存儲過程的參數的相關知識,并通過一個一個實際的例子進行測試,希望能夠對您有所幫助。

SQL Server 2008中使用DataTable作為存儲過程的參數的相關知識是本文我們主要要介紹的內容,筆者在最近工作中寫了幾個存儲過程,需要向存儲過程中傳遞字符串,因為SQL Server 2000中沒有內置類似于split 的函數,只好自己處理,將前臺數據集中的一列用逗號拆分存到一個List中,再轉化為字符串傳給存儲過程,很是麻煩。今天看了下SQL Server 2008的新特性,發現有表變量的使用,及其將DataTable作為參數的用法,就嘗試了一下,簡單談談心得。

一、測試環境

1、Windows Server 2008 R2 DataCenter

2、Visual Studio 2008 Team System With SP1

3、SQL Server 2008 Enterprise Edition With SP1

由于是SQL Server 2008新特性,所以只能用2008。

二、測試概述

測試項目很簡單,就是添加新用戶

SQL Server 2008中使用DataTable作為存儲過程的參數

三、準備數據

建立數據庫、表、類型、存儲過程

代碼:

  1. IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U'))  
  2. DROP TABLE [dbo].[Users]  
  3. CREATE TABLE [dbo].[Users](  
  4.  [UserID] [int] IDENTITY(-1,-1) NOT NULL,  
  5.  [UserName] [varchar](20) NOT NULL,  
  6.  [UserPass] [varchar](20) NOT NULL,  
  7.  [Sex] [bit] NULL,  
  8.  [Age] [smallint] NULL,  
  9.  CONSTRAINT [PK_Users_UserID] PRIMARY KEY CLUSTERED   
  10. (  
  11. [UserID] ASC  
  12. )WITH (PAD_INDEX  = OFFSTATISTICS_NORECOMPUTE  = OFFIGNORE_DUP_KEY = OFFALLOW_ROW_LOCKS  = ONALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  
  13. ) ON [PRIMARY]  
  14.  
  15. IF  EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'UserTable' AND ss.name = N'dbo')  
  16. DROP TYPE [dbo].[UserTable]  
  17. CREATE TYPE [dbo].[UserTable] AS TABLE(  
  18.  [UserName] [varchar](20) NOT NULL,  
  19.  [UserPass] [varchar](20) NOT NULL,  
  20.  [Sex] [bit] NULL,  
  21.  [Age] [smallint] NULL  
  22. )  
  23.  
  24. IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_InsertSingleUser]') AND type in (N'P', N'PC'))  
  25. DROP PROCEDURE [dbo].[sp_InsertSingleUser]  
  26. GO  
  27. CREATE PROCEDURE [dbo].[sp_InsertSingleUser]   
  28. (   
  29. @User UserTable READONLY   
  30. )   
  31. AS   
  32. SET XACT_ABORT ON   
  33. BEGIN TRANSACTION   
  34. INSERT INTO dbo.Users(UserName, UserPass, Sex, Age)   
  35. SELECT UserName, UserPass, Sex, Age FROM @User   
  36. COMMIT TRANSACTION   
  37. 前臺搭建好表單,后臺主要是一個函數:  
  38.  
  39. 代碼  
  40.  
  41. public void fnInsertSingleUser(DataTable v_dt)   
  42. {   
  43. try   
  44. {   
  45. SqlConnection cn = new SqlConnection(CONN);   
  46. SqlCommand cmd = cn.CreateCommand();   
  47. cmd.CommandType = CommandType.StoredProcedure;   
  48. cmd.CommandText = @"sp_InsertSingleUser";   
  49. SqlParameter p = cmd.Parameters.AddWithValue("@User", v_dt);   
  50.  
  51. DataSet ds = new DataSet();   
  52. SqlDataAdapter da = new SqlDataAdapter(cmd);   
  53. da.Fill(ds);   
  54. }   
  55. catch (Exception ex)   
  56. {   
  57. throw ex;   
  58. }   

點擊【添加】按鈕時調用存儲過程。測試是完成了,也很簡單,傳遞一個DataTable做參數確實很方便吧,能夠輕松完成原先需要很多編碼的工 作。關于表變量還是有些道道的,如創建時判斷其是否存在的語句,刪除表變量前需要先刪除引用表變量的存儲過程等。

一般開發我大多會選擇用臨時表,處理起來 比較方便,表變量可以作為存儲過程參數確實是一個獨特的優勢,希望在SQL Server的未來版本中能夠繼續增強對表變量和臨時表的支持,尤其是早日支持臨時表調試。

關于SQL Server 2008數據庫中使用DataTable作為存儲過程的參數的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. SQL Server 2005導入Oracle 10g的C#源碼
  2. SQL Server 2008快速清理日志文件的代碼
  3. SQL Server 2008數據庫中CDC的功能使用及說明
  4. SQL Server 2008阻止保存要求重新創建表的更改的問題
  5. SQL Server數據庫row_number() over() 來自動產生行號
責任編輯:趙鵬 來源: 百度空間
相關推薦

2010-11-12 09:18:13

SQL Server存

2011-09-01 15:24:22

SQL Server 存儲過程調試

2009-08-04 10:29:06

在C#中使用存儲過程

2010-09-14 10:16:57

sql server

2010-07-15 12:38:14

SQL Server存

2011-08-29 18:02:29

SQL Server FileStream

2011-09-01 17:25:03

SQL Server 查看死鎖存儲過程

2010-07-13 10:35:20

SQL Server2

2011-03-24 13:38:47

SQL Server 存儲分頁

2011-09-01 14:00:11

SQL Server 存儲過程顯示表結構

2011-08-11 09:49:33

SQL Server 存儲過程插入更新數據

2021-02-08 11:04:21

嵌套SQL Server語言

2010-10-20 16:17:17

SQL Server角

2011-08-24 16:56:54

OracleArray類型存儲過程

2010-09-06 11:05:05

SQL SERVER語句

2009-08-06 16:44:06

2010-09-27 16:10:42

SQL Server游

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:44:31

2009-04-16 17:38:24

SQL Server 空間數據智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区视频免费观看 | 国产精品美女久久久久久久久久久 | 欧美国产日韩在线观看成人 | 日本高清视频在线播放 | 在线播放国产一区二区三区 | 成人三级在线播放 | 日韩av免费看 | 国产精品久久久久久久久久久免费看 | 国产乱一区二区三区视频 | 国产日韩欧美另类 | 91麻豆精品国产91久久久久久久久 | 久久久久久国产精品免费免费 | 在线中文av | 国产视频二区在线观看 | 中文字幕第三页 | 欧美一级视频在线观看 | 一区二区三区高清在线观看 | 国产中文在线观看 | 欧美国产大片 | 欧美男人天堂 | 久久久精品 | 日韩欧美精品一区 | 免费观看的av毛片的网站 | 影音先锋欧美资源 | 毛片av免费看 | 欧美日韩在线综合 | a国产一区二区免费入口 | 精品色| 激情欧美日韩一区二区 | 国产成人精品一区二区三区网站观看 | 中文字幕一区在线观看视频 | 精品国偷自产在线 | 草草草久久久 | 欧美精品99 | 欧美中文字幕一区二区三区亚洲 | 精品视频一区二区三区 | 欧美日韩亚洲在线 | 久久久久久免费观看 | 人人干人人超 | 日本黄色免费视频 | 在线视频一区二区三区 |