將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
示例代碼下載
一、測(cè)試環(huán)境
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。
二、測(cè)試概述
測(cè)試項(xiàng)目很簡(jiǎn)單,就是添加新用戶

三、準(zhǔn)備數(shù)據(jù)
1、建立數(shù)據(jù)庫、表、類型、存儲(chǔ)過程
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
前臺(tái)搭建好表單,后臺(tái)主要是一個(gè)函數(shù):
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;
}
}
點(diǎn)擊【添加】按鈕時(shí)調(diào)用存儲(chǔ)過程。測(cè)試是完成了
- 比較2個(gè)datatable內(nèi)容是否相同的方法
- datatable生成excel和excel插入圖片示例詳解
- c#將list類型轉(zhuǎn)換成DataTable方法示例
- 多個(gè)jquery.datatable共存,checkbox全選異常的快速解決方法
- DataTables List互相轉(zhuǎn)換的實(shí)現(xiàn)類示例
- 使用DataTable.Select 方法時(shí),特殊字符的轉(zhuǎn)義方法分享
- ASP.NET中DataTable與DataSet之間的轉(zhuǎn)換示例
- 多個(gè)datatable共存造成多個(gè)表格的checkbox都被選中
- datatable行轉(zhuǎn)列示例分享
相關(guān)文章
SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法
與 SQL Server建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤,這篇文章主要介紹了SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07SQL server 2008不允許保存更改的完美解決辦法(圖解)
我重裝系統(tǒng)后就安裝了SQL Server2008R2,第一次使用時(shí)在修改表結(jié)構(gòu)的時(shí)候經(jīng)碰到這樣一個(gè)警告【不允許保存更改。您所做的更改要求刪除并重新創(chuàng)建以下表.對(duì)這樣的錯(cuò)誤提示怎么解決呢?下面小編通過圖文并茂的形式給大家分享解決辦法2017-01-01SQL Server 2008 阻止保存要求重新創(chuàng)建表的更改問題的設(shè)置方法
不是很理解為什么在2008中會(huì)加入阻止保存要求重新創(chuàng)建表的更改這個(gè)選項(xiàng).癥狀表現(xiàn)為修改表結(jié)構(gòu)的時(shí)候會(huì)"阻止"你.而且我遇到的情況是居然有的時(shí)候阻止你,有的時(shí)候不阻止你,摸不到頭腦.2012-05-05在與 SQL Server 建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤。未找到或無法訪問服務(wù)器
在與 SQL Server 建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤。未找到或無法訪問服務(wù)器。請(qǐng)驗(yàn)證實(shí)例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)2015-01-01SQL Server 2008 備份數(shù)據(jù)庫、還原數(shù)據(jù)庫的方法
這篇文章主要介紹了SQL Server 2008 備份數(shù)據(jù)庫、還原數(shù)據(jù)庫的方法,需要的朋友可以參考下2014-08-08Java打印和打印預(yù)覽機(jī)制實(shí)例代碼
這篇文章主要介紹了Java打印和打印預(yù)覽機(jī)制實(shí)例代碼,有需要的朋友可以參考一下2014-01-01SQL Server2008導(dǎo)出數(shù)據(jù)之Excel詳細(xì)解析
我覺得數(shù)據(jù)庫的導(dǎo)入和導(dǎo)出很有用,順便做一下總結(jié),以免將來有遺忘。需要的朋友可以過來參考下2013-08-08