好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 將DataTable作為存儲過程參數的用法實例詳解

將DataTable作為存儲過程參數的用法實例詳解

熱門標簽:舞鋼市地圖標注app 電銷機器人虛擬號碼 沈陽智能外呼系統代理 松原導航地圖標注 海南自動外呼系統價格 滄州營銷外呼系統軟件 九鹿林外呼系統怎么收費 浙江地圖標注 創業電銷機器人
最近工作中寫了幾個存儲過程,需要向存儲過程中傳遞字符串,因為SQL Server 2000中沒有內置類似于 split 的函數,只好自己處理,將前臺數據集中的一列用逗號拆分存到一個Liststring>中,再轉化為字符串傳給存儲過程,很是麻煩。今天看了下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。
二、測試概述
測試項目很簡單,就是添加新用戶
 
三、準備數據
1、建立數據庫、表、類型、存儲過程
復制代碼 代碼如下:

IF NOT EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('Users') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
CREATE TABLE dbo.Users
(
UserID INT IDENTITY(-1, -1) NOT NULL,
UserName VARCHAR(20) NOT NULL,
UserPass VARCHAR(20) NOT NULL,
Sex BIT NULL,
Age SMALLINT NULL,
CONSTRAINT PK_Users_UserID PRIMARY KEY(UserID)
)
END
IF NOT EXISTS(SELECT * FROM sys.table_types WHERE name = 'UserTable' AND is_user_defined = 1)
BEGIN
CREATE TYPE UserTable AS TABLE
(
UserName VARCHAR(20) NOT NULL,
UserPass VARCHAR(20) NOT NULL,
Sex BIT NULL,
Age SMALLINT NULL
)
END
GO

復制代碼 代碼如下:

IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('sp_InsertSingleUser') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
BEGIN
DROP PROCEDURE dbo.sp_InsertSingleUser
END
GO
CREATE PROCEDURE dbo.sp_InsertSingleUser
(
@User UserTable READONLY
)
AS
SET XACT_ABORT ON
BEGIN TRANSACTION
INSERT INTO dbo.Users(UserName, UserPass, Sex, Age)
SELECT UserName, UserPass, Sex, Age FROM @User
COMMIT TRANSACTION
SET XACT_ABORT OFF
GO

前臺搭建好表單,后臺主要是一個函數:
復制代碼 代碼如下:

public void fnInsertSingleUser(DataTable v_dt)
{
try
{
SqlConnection cn = new SqlConnection(CONN);
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"sp_InsertSingleUser";
SqlParameter p = cmd.Parameters.AddWithValue("@User", v_dt);
10
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
}

點擊【添加】按鈕時調用存儲過程。測試是完成了
您可能感興趣的文章:
  • 比較2個datatable內容是否相同的方法
  • datatable生成excel和excel插入圖片示例詳解
  • c#將list類型轉換成DataTable方法示例
  • 多個jquery.datatable共存,checkbox全選異常的快速解決方法
  • DataTables List互相轉換的實現類示例
  • 使用DataTable.Select 方法時,特殊字符的轉義方法分享
  • ASP.NET中DataTable與DataSet之間的轉換示例
  • 多個datatable共存造成多個表格的checkbox都被選中
  • datatable行轉列示例分享

標簽:公主嶺 西藏 寶雞 海口 日喀則 商洛 咸寧 臺灣

巨人網絡通訊聲明:本文標題《將DataTable作為存儲過程參數的用法實例詳解》,本文關鍵詞  將,DataTable,作為,存儲,過程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《將DataTable作為存儲過程參數的用法實例詳解》相關的同類信息!
  • 本頁收集關于將DataTable作為存儲過程參數的用法實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 大雄?静香同人禁漫画18| 91精品成人免费国产片| 男女啪啪软件| 蜜臀久久精品久久久久久| 久久久久亚洲精品中文八戒简爱 | 波多野结衣伦理狂爱| 国产免费AV视频一区二区三区| 足控丝交榨精漫画大全| japaneseles女同专区| 韩国漫画无羞遮挡漫画免费| 亚洲老熟女毛茸茸XXX| 欧美精品一区二区三区AV麻豆 | 中国女人大白屁股| 国产一级特黄aaaa大片野外| 男男道具play震动按摩器| 91国内精品久久久久精品一本| 国产情侣真实露脸在线| 久久香蕉成人AV大片免费看 | 极品人妻互换32部分| 乱短篇艳辣500篇H文| 亚洲精品9999久久久久| 俄罗斯一级婬片A片AAA毛片| 欲望之岛完整版电影在线观看视频| 香港三级日本三级人妇三级四| 三年片高清免费观看完整版 | 邮箱| 国产精品综合网| 在线无码精品秘?日本古桃| 日日摸日日碰夜夜爽无码亚洲V| 丝袜国产一区| 变成黑皮辣无删版e站| 久久免费少妇做爰高潮彭水| GOGO全球高清大尺度无吗亚| 撕开丝袜裆部啪啪| 最近最新中文字幕大全高清6| 喷水网站| 捏胸狂乳爆乳18禁H漫画入口| 美女爆乳裸体啪啪久久精品网站| 男人私人影院免费看视频| 客厅也啪啪厨房也啪啪女| 3大著名野鸡警校|