将DataTable作为存储过程参数的用法
比较新奇的 用法 。 最近工作中写了几个 存储 过程 ,需要向 存储 过程 中传递字符串,因为 SQL Server 2000 中没有内置类于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个 Liststring 中,再转化为字符串传给 存储 过程 ,很是麻烦
比较新奇的用法。
最近工作中写了几个存储过程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于
split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List
示例代码下载
一、测试环境
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、建立数据库、表、类型、存储过程

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, -1) NOT NULL,
6 UserName VARCHAR(20) NOT NULL,
7 UserPass VARCHAR(20) NOT 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(20) NOT NULL,
18 UserPass VARCHAR(20) NOT 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 }
点击【添加】按钮时调用存储过程。测试是完成了

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











요즘 휴대폰의 성능과 기능은 점점 더 강력해지고 있습니다. 거의 모든 휴대폰에는 사용자의 모바일 결제 및 신원 인증을 용이하게 하는 편리한 NFC 기능이 탑재되어 있습니다. 그러나 일부 Xiaomi 14Pro 사용자는 NFC 기능을 활성화하는 방법을 모를 수 있습니다. 다음으로 자세히 소개해드리겠습니다. Xiaomi 14Pro에서 NFC 기능을 활성화하는 방법은 무엇입니까? 1단계: 휴대폰의 설정 메뉴를 엽니다. 2단계: "연결 및 공유" 또는 "무선 및 네트워크" 옵션을 찾아 클릭합니다. 3단계: 연결 및 공유 또는 무선 및 네트워크 메뉴에서 "NFC 및 결제"를 찾아 클릭합니다. 4단계: "NFC 스위치"를 찾아서 클릭하세요. 일반적으로 기본값은 꺼짐입니다. 5단계: NFC 스위치 페이지에서 스위치 버튼을 클릭하여 켜세요.

WPS는 당사에서 흔히 사용하는 사무용 소프트웨어입니다. 긴 글을 편집할 때 글꼴이 너무 작아서 선명하게 보이지 않는 경우가 많아 글꼴과 전체 문서가 조정됩니다. 예를 들어 문서의 줄 간격을 조정하면 문서 전체가 매우 명확해집니다. 오늘은 구체적인 작업 단계를 알려드리겠습니다. 와서 살펴보세요. 조정하려는 WPS 텍스트 파일을 열고 [시작] 메뉴에서 단락 설정 툴바를 찾으면 작은 줄 간격 설정 아이콘(그림에서 빨간색 원으로 표시)이 표시됩니다. 2. 줄 간격 설정 오른쪽 하단에 있는 작은 역삼각형을 클릭하면 해당 줄 간격 값이 나타납니다. 줄 간격의 1~3배를 선택할 수 있습니다(그림의 화살표 참조). 3. 또는 해당 단락을 마우스 오른쪽 버튼으로 클릭하면 나타납니다.

화면을 공중으로 밀어내는 것은 화웨이 메이트60 시리즈에서 높은 평가를 받는 화웨이의 기능이다. 이 기능은 휴대폰의 레이저 센서와 전면 카메라의 3D 깊이 카메라를 활용해 화면이 필요 없는 일련의 기능을 완성한다. 공중에서 TikTok을 스와이프하는 등 화면을 터치하는 기능이 있는데, Huawei Pocket 2를 사용하여 공중에서 TikTok을 스와이프하는 방법은 무엇인가요? Huawei Pocket2로 공중에서 스크린샷을 찍는 방법은 무엇입니까? 1. Huawei Pocket2의 설정을 엽니다. 2. 그런 다음 [접근성]을 선택합니다. 3. 클릭하여 [스마트 인식]을 엽니다. 4. [에어 스와이프 스크린], [에어 스크린샷], [에어 프레스] 스위치를 켜기만 하면 됩니다. 5. 사용 시 화면에서 20~40CM 거리를 두고 손바닥을 펴고 화면에 손바닥 아이콘이 나타날 때까지 기다려야 합니다.

아이폰16 프로의 CAD 파일이 노출됐는데, 디자인은 기존 루머와 일치한다. 지난해 가을 아이폰 15 프로에는 액션 버튼이 추가됐고, 올 가을 애플은 하드웨어 크기를 소폭 조정할 계획인 것으로 보인다. 캡처 버튼 추가 소문에 따르면 아이폰 16 프로는 두 번째 새 버튼을 추가할 수도 있는데, 이는 지난해에 이어 2년 연속 새 버튼이 추가되는 셈이다. 아이폰 16 프로에서는 새로운 캡처 버튼이 오른쪽 하단에 배치될 것이라는 소문이 돌고 있다. 이 디자인은 카메라 제어를 더욱 편리하게 하고 액션 버튼을 다른 기능에도 사용할 수 있게 할 것으로 예상된다. 이 버튼은 더 이상 일반 셔터 버튼이 아닙니다. 카메라에 관해서는 현재 iP에서

C++ 매개변수 유형 안전성 검사는 함수가 컴파일 시간 검사, 런타임 검사 및 정적 어설션을 통해 예상된 유형의 값만 허용하도록 보장하여 예기치 않은 동작 및 프로그램 충돌을 방지합니다. 컴파일 시간 유형 검사: 컴파일러가 유형 호환성을 검사합니다. 런타임 유형 검사: 동적_캐스트를 사용하여 유형 호환성을 확인하고 일치하는 항목이 없으면 예외를 발생시킵니다. 정적 어설션: 컴파일 타임에 유형 조건을 어설션합니다.

C 언어와 PHP의 차이점 및 비교 분석 C 언어와 PHP는 모두 일반적인 프로그래밍 언어이지만 여러 측면에서 분명한 차이점이 있습니다. 이 기사에서는 C 언어와 PHP를 비교 분석하고 구체적인 코드 예제를 통해 이들 간의 차이점을 설명합니다. 1. 구문 및 사용법: C 언어: C 언어는 프로세스 지향 프로그래밍 언어로 주로 시스템 수준 프로그래밍 및 임베디드 개발에 사용됩니다. C 언어의 구문은 상대적으로 간단하고 저수준이며, 메모리를 직접 조작할 수 있고 효율적이고 유연합니다. C 언어는 프로그래머의 프로그램 완성도를 강조합니다.

시대의 진보로 인해 많은 사람들의 소득이 점점 더 높아지고 있으며, 그들이 일반적으로 사용하는 휴대폰은 자주 변경될 것입니다. Xiaomi가 최근 출시한 Xiaomi Mi 14 Ultra는 사용자에게 친숙할 것입니다. 사용자에게 더 많은 것을 제공할 수 있습니다. 편안하고 원활한 경험을 제공하기 위해 새로운 휴대폰은 필연적으로 사용되지 않는 많은 기능을 접하게 됩니다. 예를 들어 Xiaomi 14UltraAI 스마트 이미지 확장을 사용하는 방법은 무엇입니까? 아래의 사용법 튜토리얼을 살펴보세요! Xiaomi 14UltraAI 스마트 이미지 확장을 사용하는 방법은 무엇입니까? 먼저 Xiaomi 14Ultra를 열고 사진 앨범에 들어가서 확대하려는 사진을 선택한 다음 사진 앨범 편집 옵션에 들어갑니다. 자르기 회전을 클릭하고 자르기를 클릭한 다음 나타나는 선택 항목에서 스마트 확장을 클릭합니다. 마지막으로 필요에 따라 이미지를 확장하는 방법을 선택합니다.

3월 2일 통계에 따르면 비트코인의 2계층 네트워크 MerlinChain의 총 TVL은 미화 30억 달러에 도달했습니다. 이 중 비트코인 생태자산은 15억9600만 달러 상당의 BTC, 4억400만 달러 상당의 BRC-20 자산 등 90.83%를 차지했다. 지난 달 MerlinChain의 총 TVL은 스테이킹 활동을 시작한 지 14일 만에 19억 7천만 달러에 이르렀으며, 이는 작년 11월에 출시된 Blast를 능가하며 가장 최근이자 똑같이 눈길을 사로잡습니다. 2월 26일, MerlinChain 생태계의 NFT 총 가치는 미화 4억 2천만 달러를 초과하여 이더리움 외에 NFT 시장 가치가 가장 높은 퍼블릭 체인 프로젝트가 되었습니다. 프로젝트 소개 MerlinChain은 OKX 지원입니다
