Rumah pangkalan data tutorial mysql 将DataTable作为存储过程参数的用法

将DataTable作为存储过程参数的用法

Jun 07, 2016 pm 03:15 PM
datatable parameter penyimpanan Bandingkan penggunaan proses

比较新奇的 用法 。 最近工作中写了几个 存储 过程 ,需要向 存储 过程 中传递字符串,因为 SQL Server 2000 中没有内置类于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个 Liststring 中,再转化为字符串传给 存储 过程 ,很是麻烦

比较新奇的用法

最近工作中写了几个存储过程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List中,再转化为字符串传给存储过程,很是麻烦。今天看了下SQL Server 2008的新特性,发现有表变量的使用,及其将DataTable作为参数用法,就尝试了一下,简单谈谈心得。

 示例代码下载

 

一、测试环境

1Windows Server 2008 R2 DataCenter

2Visual Studio 2008 Team System With SP1

3SQL Server 2008 Enterprise Edition With SP1

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

 

 二、测试概述

测试项目很简单,就是添加新用户

 

 

三、准备数据

1、建立数据库、表、类型、存储过程

 

复制代码

复制代码

代码

 1 IF NOT EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('Users'AND OBJECTPROPERTY(id, N'IsUserTable'= 1)
 2 BEGIN
 3  CREATE TABLE dbo.Users
 4  (
 5   UserID INT IDENTITY(-1-1NOT NULL,
 6   UserName VARCHAR(20NOT NULL,
 7   UserPass VARCHAR(20NOT NULL,
 8   Sex BIT NULL,
 9   Age SMALLINT NULL,
10   CONSTRAINT PK_Users_UserID PRIMARY KEY(UserID)
11  )
12 END
13 IF NOT EXISTS(SELECT * FROM sys.table_types WHERE name = 'UserTable' AND is_user_defined = 1)
14 BEGIN
15  CREATE TYPE UserTable AS TABLE
16  (
17   UserName VARCHAR(20NOT NULL,
18   UserPass VARCHAR(20NOT NULL,
19   Sex BIT NULL,
20   Age SMALLINT NULL
21  )
22 END
23 GO
24 

复制代码

复制代码

复制代码

复制代码

代码

 1 IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('sp_InsertSingleUser'AND OBJECTPROPERTY(id, N'IsProcedure'= 1)
 2 BEGIN
 3     DROP PROCEDURE dbo.sp_InsertSingleUser
 4 END
 5 GO
 6 CREATE PROCEDURE dbo.sp_InsertSingleUser
 7 (
 8     @User UserTable READONLY
 9 )
10 AS
11 
12 SET XACT_ABORT ON
13 BEGIN TRANSACTION
14 
15 INSERT INTO dbo.Users(UserName, UserPass, Sex, Age)
16 SELECT UserName, UserPass, Sex, Age FROM @User
17 
18 COMMIT TRANSACTION
19 SET XACT_ABORT OFF
20 GO

复制代码

复制代码

前台搭建好表单,后台主要是一个函数:

代码

 1     public void fnInsertSingleUser(DataTable v_dt)
 2     {
 3         try
 4         {
 5             SqlConnection cn = new SqlConnection(CONN);
 6             SqlCommand cmd = cn.CreateCommand();
 7             cmd.CommandType = CommandType.StoredProcedure;
 8             cmd.CommandText = @"sp_InsertSingleUser";
 9             SqlParameter p = cmd.Parameters.AddWithValue("@User", v_dt);
10 
11             DataSet ds = new DataSet();
12             SqlDataAdapter da = new SqlDataAdapter(cmd);
13             da.Fill(ds);
14         }
15         catch (Exception ex)
16         {
17             throw ex;
18         }
19     }

  点击【添加】按钮时调用存储过程。测试是完成了

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendayakan fungsi nfc pada Xiaomi Mi 14 Pro? Bagaimana untuk mendayakan fungsi nfc pada Xiaomi Mi 14 Pro? Mar 19, 2024 pm 02:28 PM

Pada masa kini, prestasi dan fungsi telefon bimbit semakin berkuasa Hampir semua telefon bimbit dilengkapi dengan fungsi NFC yang mudah untuk memudahkan pengguna untuk pembayaran mudah alih dan pengesahan identiti. Walau bagaimanapun, sesetengah pengguna Xiaomi 14Pro mungkin tidak tahu cara mendayakan fungsi NFC. Seterusnya, izinkan saya memperkenalkannya kepada anda secara terperinci. Bagaimana untuk mendayakan fungsi nfc pada Xiaomi 14Pro? Langkah 1: Buka menu tetapan telefon anda. Langkah 2: Cari dan klik pilihan "Sambung dan Kongsi" atau "Wayarles & Rangkaian". Langkah 3: Dalam menu Sambungan & Perkongsian atau Wayarles & Rangkaian, cari dan klik "NFC & Pembayaran". Langkah 4: Cari dan klik "NFC Switch". Biasanya, lalai dimatikan. Langkah 5: Pada halaman suis NFC, klik butang suis untuk menghidupkannya.

Bagaimana untuk menetapkan jarak baris dalam WPS Word untuk menjadikan dokumen lebih kemas Bagaimana untuk menetapkan jarak baris dalam WPS Word untuk menjadikan dokumen lebih kemas Mar 20, 2024 pm 04:30 PM

WPS ialah perisian pejabat kami yang biasa digunakan Semasa mengedit artikel panjang, fon selalunya terlalu kecil untuk dilihat dengan jelas, jadi fon dan keseluruhan dokumen dilaraskan. Sebagai contoh: melaraskan jarak baris dokumen akan menjadikan keseluruhan dokumen sangat jelas. Saya cadangkan agar semua rakan mempelajari langkah operasi ini, saya akan berkongsi dengan anda hari ini. Buka fail teks WPS yang anda ingin laraskan, cari bar alat tetapan perenggan dalam menu [Mula], dan anda akan melihat ikon tetapan jarak baris kecil (ditunjukkan sebagai bulatan merah dalam gambar). 2. Klik segi tiga terbalik kecil di sudut kanan bawah tetapan jarak baris, dan nilai jarak baris yang sepadan akan muncul Anda boleh memilih 1 hingga 3 kali jarak baris (seperti yang ditunjukkan oleh anak panah dalam rajah). 3. Atau klik kanan perenggan dan ia akan muncul.

Lukisan CAD iPhone 16 Pro terdedah, menambah butang baharu kedua Lukisan CAD iPhone 16 Pro terdedah, menambah butang baharu kedua Mar 09, 2024 pm 09:07 PM

Fail CAD iPhone 16 Pro telah didedahkan, dan reka bentuknya konsisten dengan khabar angin sebelum ini. Musim luruh lepas, iPhone 15 Pro menambah butang Tindakan, dan musim gugur ini, Apple nampaknya merancang untuk membuat pelarasan kecil pada saiz perkakasan. Menambah butang Tangkap Menurut khabar angin, iPhone 16 Pro mungkin menambah butang baharu kedua, yang akan menjadi tahun kedua berturut-turut untuk menambah butang baharu selepas tahun lepas. Khabar angin mengatakan bahawa butang Tangkap baharu akan ditetapkan di sebelah kanan bawah iPhone 16 Pro Reka bentuk ini dijangka menjadikan kawalan kamera lebih mudah dan juga membolehkan butang Tindakan digunakan untuk fungsi lain. Butang ini bukan lagi sekadar butang pengatup biasa. Mengenai kamera, dari iP semasa

Bagaimana untuk menggunakan TikTok pada Huawei Pocket2 dari jauh? Bagaimana untuk menggunakan TikTok pada Huawei Pocket2 dari jauh? Mar 18, 2024 pm 03:00 PM

Meluncur skrin melalui udara adalah ciri Huawei yang sangat dipuji dalam siri Huawei mate60 Ciri ini menggunakan sensor laser pada telefon dan kamera kedalaman 3D kamera hadapan untuk melengkapkan siri fungsi yang tidak memerlukan The. fungsi menyentuh skrin, seperti meleret TikTok dari udara, tetapi bagaimana menggunakan Huawei Pocket 2 untuk meleret TikTok dari udara? Bagaimana untuk mengambil tangkapan skrin dari udara dengan Huawei Pocket2? 1. Buka tetapan Huawei Pocket2 2. Kemudian pilih [Kebolehcapaian]. 3. Klik untuk membuka [Persepsi Pintar]. 4. Hanya hidupkan suis [Air Swipe Screen], [Air Screenshot] dan [Air Press]. 5. Apabila menggunakannya, anda perlu menahannya 20~40CM dari skrin, buka tapak tangan anda dan tunggu sehingga ikon tapak tangan muncul pada skrin.

Pemeriksaan keselamatan jenis parameter fungsi C++ Pemeriksaan keselamatan jenis parameter fungsi C++ Apr 19, 2024 pm 12:00 PM

Pemeriksaan keselamatan jenis parameter C++ memastikan bahawa fungsi hanya menerima nilai jenis yang dijangkakan melalui semakan masa kompilasi, semakan masa jalan dan penegasan statik, menghalang tingkah laku yang tidak dijangka dan ranap program: Pemeriksaan jenis masa kompilasi: Pengkompil menyemak keserasian jenis. Semakan jenis masa jalan: Gunakan dynamic_cast untuk menyemak keserasian jenis dan buang pengecualian jika tiada padanan. Penegasan statik: Tegaskan keadaan jenis pada masa penyusunan.

Perbezaan dan analisis perbandingan antara bahasa C dan PHP Perbezaan dan analisis perbandingan antara bahasa C dan PHP Mar 20, 2024 am 08:54 AM

Perbezaan dan Analisis Perbandingan Bahasa C dan PHP Bahasa C dan PHP adalah kedua-dua bahasa pengaturcaraan biasa, tetapi mereka mempunyai perbezaan yang jelas dalam banyak aspek. Artikel ini akan menjalankan analisis perbandingan bahasa C dan PHP dan menggambarkan perbezaan antara mereka melalui contoh kod tertentu. 1. Sintaks dan penggunaan: Bahasa C: Bahasa C ialah bahasa pengaturcaraan berorientasikan proses, terutamanya digunakan untuk pengaturcaraan peringkat sistem dan pembangunan terbenam. Sintaks bahasa C agak mudah dan tahap rendah, boleh mengendalikan memori secara langsung, dan cekap dan fleksibel. Bahasa C menekankan kesempurnaan program pengaturcara

Institut Penyelidikan TrendX: Analisis projek Rantaian Merlin dan inventori ekologi Institut Penyelidikan TrendX: Analisis projek Rantaian Merlin dan inventori ekologi Mar 24, 2024 am 09:01 AM

Menurut statistik pada 2 Mac, jumlah TVL rangkaian lapisan kedua Bitcoin MerlinChain telah mencecah AS$3 bilion. Antaranya, aset ekologi Bitcoin menyumbang 90.83%, termasuk BTC bernilai AS$1.596 bilion dan aset BRC-20 bernilai AS$404 juta. Bulan lalu, jumlah TVL MerlinChain mencecah AS$1.97 bilion dalam tempoh 14 hari selepas melancarkan aktiviti mempertaruhkan, mengatasi Blast, yang dilancarkan pada November tahun lepas dan juga yang paling terkini dan sama menarik perhatian. Pada 26 Februari, jumlah nilai NFT dalam ekosistem MerlinChain melebihi AS$420 juta, menjadi projek rantaian awam dengan nilai pasaran NFT tertinggi selain Ethereum. Pengenalan Projek MerlinChain ialah sokongan OKX

Bagaimana untuk menggunakan pengembangan imej pintar Xiaomi Mi 14 Ultra AI? Bagaimana untuk menggunakan pengembangan imej pintar Xiaomi Mi 14 Ultra AI? Mar 16, 2024 pm 12:37 PM

Kemajuan zaman telah menjadikan pendapatan ramai orang lebih tinggi dan lebih tinggi, dan telefon bimbit yang biasa mereka gunakan akan ditukar dengan kerap Xiaomi Mi 14 Ultra baru-baru ini dilancarkan oleh Xiaomi mesti biasa kepada pengguna, dan ia boleh menyediakan pengguna dengan lebih Untuk memberikan pengalaman yang selesa dan lancar, telefon mudah alih baru pasti akan menghadapi banyak fungsi yang tidak digunakan Contohnya, bagaimana untuk menggunakan pengembangan imej pintar Xiaomi 14UltraAI? Datang dan lihat tutorial penggunaan di bawah! Bagaimana untuk menggunakan pengembangan imej pintar Xiaomi 14UltraAI? Mula-mula buka Xiaomi 14Ultra, masukkan album foto, pilih gambar yang ingin anda besarkan, dan masukkan pilihan penyuntingan album foto. Klik Crop Rotate, klik Crop, dan klik Smart Expand dalam pilihan yang dipaparkan. Akhir sekali, pilih cara untuk mengembangkan imej mengikut keperluan anda sendiri.

See all articles