广告
返回顶部
首页 > 资讯 > 数据库 >怎么使用DataTable作为存储过程的参数
  • 401
分享到

怎么使用DataTable作为存储过程的参数

2024-04-02 19:04:59 401人浏览 泡泡鱼
摘要

小编给大家分享一下怎么使用DataTable作为存储过程的参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  因为SQL Se

小编给大家分享一下怎么使用DataTable作为存储过程的参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List中,再转化为字符串传给存储过程,很是麻烦。下面编程网小编来讲解下如何使用DataTable作为存储过程的参数?

  如何使用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

  如何使用DataTable作为存储过程的参数

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);
  
   DataSet ds = new DataSet();
   SqlDataAdapter da = new SqlDataAdapter(cmd);
   da.Fill(ds);
   }
   catch (Exception ex)
   {
   throw ex;
   }
   }

  点击【添加】按钮时调用存储过程。测试是完成了,也很简单,传递一个DataTable做参数确实很方便吧,能够轻松完成原先需要很多编码的工作。关于 表变量还是有些道道的,如创建时判断其是否存在的语句,删除表变量前需要先删除引用表变量的存储过程等。一般开发我大多会选择用临时表,处理起来比较方 便,表变量可以作为存储过程参数确实是一个独特的优势,希望在SQL Server的未来版本中能够继续增强对表变量和临时表的支持,尤其是早日支持临时表调试。

以上是“怎么使用DataTable作为存储过程的参数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用DataTable作为存储过程的参数

本文链接: https://www.lsjlt.com/news/55239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用DataTable作为存储过程的参数
    小编给大家分享一下怎么使用DataTable作为存储过程的参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  因为SQL Se...
    99+
    2022-10-18
  • MySQL存储过程的参数如何使用
    这篇文章主要介绍“MySQL存储过程的参数如何使用”,在日常操作中,相信很多人在MySQL存储过程的参数如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL存储过...
    99+
    2022-10-19
  • mysql存储过程参数的用法
    这篇文章主要讲解了“mysql存储过程参数的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储过程参数的用法”吧!说明in输入参数:表示调用者向存储过程的输入值(输入值可以是字...
    99+
    2023-06-20
  • MySql中如何使用存储过程参数
    MySql中如何使用存储过程参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。存储过程 in参数 的使用IN参数只用来向过程传...
    99+
    2022-10-18
  • mysql存储过程怎么传字符串参数
    mysql存储过程传字符串参数的示例:存储过程:create procedure Pro_GetUserInfo(in szEmpName varchar(1000))-> ...
    99+
    2022-10-24
  • Mysql存储过程有什么作用?如何使用存储过程?
    Mysql自5.0起就支持存储过程,存储过程通俗的讲就是在一段封装过的SQL,但不仅仅只有SQL那么简单,通常还会有变量、条件判断、循环体,游标等。存储过程的作用在很多场景中,需要将多个表的数据处理,来产生...
    99+
    2022-10-18
  • MySQL存储过程参数的用法及说明
    目录mysql存储过程的参数输入参数输出参数输入输出参数(INOUT)MySQL存储过程的参数 MySQL存储过程的参数共有三种: INOUT INOUT 输入参数 输入参数(IN):在调用存储过程中传递数据给...
    99+
    2022-08-17
    MySQL存储 存储过程参数 MySQL参数
  • 怎样解析不固定参数的存储过程
    小编给大家分享一下怎样解析不固定参数的存储过程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  如何解析不固定参数的存储过程  ...
    99+
    2022-10-18
  • C#调用SQL Server中有参数的存储过程
    一、使用SqlParameter的方式 代码: using System; using System.Collections.Generic; using System.Compon...
    99+
    2022-11-13
  • SYS_REFCURSOR作为过程参数的表现是什么
    这篇文章主要讲解了“SYS_REFCURSOR作为过程参数的表现是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SYS_REFCURSOR作为过程参数的...
    99+
    2022-10-18
  • MySQL存储过程使用的参数有哪些不同模式?
    参数使存储过程更加有用和灵活。在MySQL中,我们有以下三种模式 - IN模式它是默认模式。当我们在存储过程中定义IN参数时,调用程序必须将参数传递给存储过程。 IN 参数的值受到保护,这意味着即使 IN 参数的值在存储过程内也会发生更改;...
    99+
    2023-10-22
  • mysql存储过程IN,OUT,INOUT参数模式使用详解
    IN模式 : 参数输入模式   OUT模式 : 参数输出模式   INOUT模式 : 作为输入和输出模式 区别: in类型:内部运算变化不影响外部; out类型:内部运算变化影响外部变化并且传参到储存过程时默认初始化参数...
    99+
    2017-09-18
    mysql存储过程IN OUT INOUT参数模式使用详解
  • MySQL中怎么使用存储过程
    MySQL中怎么使用存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 mysql存储过程存储过程(Stored  P...
    99+
    2022-10-18
  • Java数据库程序中的存储过程怎么使用
    这篇文章主要介绍“Java数据库程序中的存储过程怎么使用”,在日常操作中,相信很多人在Java数据库程序中的存储过程怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据库程序中的存储过程怎么使用...
    99+
    2023-06-17
  • 创建一个MySQL存储过程,该存储过程以数据库名称作为参数,列出特定数据库中包含详细信息的表。
    假设当前我们使用一个名为“query”的数据库,其中包含以下表格 -mysql> Show tables in query; +-----------------+ | Tables_in_query | +-------------...
    99+
    2023-10-22
  • mysql存储过程的作用是什么
    本篇内容主要讲解“mysql存储过程的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql存储过程的作用是什么”吧! ...
    99+
    2023-04-19
    mysql
  • 怎么写数据库的存储过程
    今天就跟大家聊聊有关怎么写数据库的存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  SQL语句需要先编译然后执行,而存储过程(Stored ...
    99+
    2022-10-18
  • oracle存储过程游标怎么使用
    在Oracle存储过程中,使用游标可以迭代访问结果集。以下是使用游标的一般步骤:1. 声明游标:在存储过程的声明部分,使用`CURS...
    99+
    2023-09-21
    oracle
  • javascript方法怎么作为参数使用
    今天小编给大家分享一下javascript方法怎么作为参数使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Javascri...
    99+
    2023-07-06
  • mysql使用存储过程的作用有哪些
    这篇文章将为大家详细讲解有关mysql使用存储过程的作用有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql使用存储过程的作用:1、增强SQL语句的功能和灵活性...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作