-SQL SERVER生成测试环境:

--创建测试DB
CREATE database Sales;
go
USE Sales
GO
--创建表类型
IF TYPE_ID('LocalDT') IS NOT NULL
DROP TYPE LocalDT
GO
CREATE TYPE LocalDT AS TABLE
(
ID INT NOT NULL,
Name NVARCHAR(50)
)
GO
--创建存储过程
IF OBJECT_ID('P_DataTable','P') IS NOT NULL
DROP PROC P_DataTable;
GO CREATE PROCEDURE P_DataTable
(
@LocalDT LocalDT READONLY
)
AS
SELECT * FROM @LocalDT
GO

--打开Visual Studio—创建项目—选择【控制台应用程序】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient; namespace ProcDataTable
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable("LocalDT");
dt.Columns.Add("ID",typeof(int));
dt.Columns.Add("Name", typeof(string));
DataRow dr = dt.NewRow();
dr[0] = 1;
dr[1] = "Roy";
dt.Rows.Add(dr);
SqlConnection thisConnection = new SqlConnection(@"Server=实例名;Database=Sales;User ID=sa;Password=1");
thisConnection.Open();
SqlCommand sqlcmd = thisConnection.CreateCommand();
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.CommandText = "P_DataTable";
SqlParameter param = sqlcmd.Parameters.AddWithValue("@LocalDT", dt);
SqlDataReader sdr = sqlcmd.ExecuteReader();
while (sdr.Read())
{
Console.WriteLine("ID:{0}\tName:{1}",sdr[0],sdr[1]);
}
thisConnection.Close();
Console.ReadKey();
}
}
}

--测试结果:

C#调用自定义表类型参数的更多相关文章

  1. DedeCMS自定义表单制作和调用办法

    [摘要]在很多建站需求中,需要一些额外的表单供前台用户提交,以便于收集.统计.分析及处理更多的数据,利用DedeCMS自带提供的自定义表单功能即可满足大多数的此类需求,本文就讲一下如何使用DedeCM ...

  2. [K/3Cloud]调用动态表单时,传递自定义参数

    插件中在调用动态表单时,通过DynamicFormShowParameter的CustomParams,增加自定义的参数. private void ShowMaterialStock() { obj ...

  3. c#调用带有自定义表结构的存储过程

    1.新建自定义表结构 CREATE TYPE [dbo].[HBForHBGHDR] AS TABLE( [序号] [int] NULL, [客户编号] [varchar](15) NULL ) GO ...

  4. phpcms v9调用自定义字段的方法步骤

    代码如下:{loop $shigongtu $r}<img src="{$r[url]} " title="测试"/>{/loop} 2 首页,分页 ...

  5. LR常用函数以及调用自定义函数

    2.LR常用函数以及调用自定义函数 2.1.LR常用函数以及对信息的判断 2.1.1. LR内部自定义函数 在LR脚本中定义变量和编写自定义函数,需将变量的声明放在脚本其他内容的上方,否则会提示[il ...

  6. dede自定义表单增加添加时间怎么弄

    我们在用dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的客服人员查询昨天晚上下班后有哪些订单是刚生成的,比较好查看,如下图所示.那么,dedecms自定义表单增加添加 ...

  7. activiti自定义流程之整合(五):启动流程时获取自定义表单

    流程定义部署之后,自然就是流程定义列表了,但和前一节一样的是,这里也是和之前单独的activiti没什么区别,因此也不多说.我们先看看列表页面以及对应的代码,然后在一步步说明点击启动按钮时如何调用自定 ...

  8. activiti自定义流程之整合(三):整合自定义表单创建模型

    本来在创建了表单之后应该是表单列表和预览功能,但是我看了看整合的代码,和之前没有用angularjs的基本没有什么变化,一些极小的变动也只是基于angularjs的语法,因此完全可以参考之前说些的表单 ...

  9. activiti自定义流程之整合(四):整合自定义表单部署流程定义

    综合前几篇博文内容,我想在整合这一部分中应该会有很多模块会跳过不讲,就如自定义表单的表单列表那一块,因为这些模块在整合的过程中都几乎没有什么改动,再多讲也是重复无用功. 正因为如此,在创建了流程模型之 ...

随机推荐

  1. [函数] Unicode 检查字符串是否含中文字

    // 字串含中文 by Aone function IsIncludeChinese(Str: String): Boolean; var i: Integer; UCS4Str: UCS4Strin ...

  2. Android自定义surfaceView显示多张图片

    我自定义了一个surfaceview,我在上面绘制多张图片,让它能够上下方滚显示图片,但是onMeasure()方法在重写的时候遇到了问题,不知道如何设置它的高度, public class MySu ...

  3. 迷信AgainAndAgain

    又重新在VBox中安装Debian其它镜像两次,依然在安装桌面软件包时挂掉...

  4. structs常见错误

    原因:打开struts-default.xml文件 解决办法: 重启Myeclipse

  5. java 四舍五入保留小数

    // 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.RO ...

  6. 高频sql语句汇总。不断更新。。

    操作 语句 创建数据库 CREATE DATABASE dbname/* DEFAULT CHARSET utf8 COLLATE utf8_general_ci;*/ 删除数据库 DROP DATA ...

  7. [moka同学笔记]YII2.0 判断签约状态,sql的两种查询方法

    方法一: //判断签约状态 $signed = 0; $sql="SELECT * from usho_community_sign_record WHERE com_id=$r->i ...

  8. Guava学习笔记:Immutable(不可变)集合

    不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客 ...

  9. adb 常用命令总结

    1. adb / adb -help 使用帮助 2. adb devices 查看连接到电脑的设备 3. adb install example.apk 安装程序 4. adb -s emulator ...

  10. Release编译模式下,事件是否会引起内存泄漏问题初步研究

    题记:不常发生的事件内存泄漏现象 想必有些朋友也常常使用事件,但是很少解除事件挂钩,程序也没有听说过内存泄漏之类的问题.幸运的是,在某些情况下,的确不会出问题,很多年前做的项目就跑得好好的,包括我也是 ...