--创建测试DBCREATE database Sales;goUSE SalesGO--创建表类型IF TYPE_ID('LocalDT') IS NOT NULL DROP TYPE LocalDTGO 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;GOCREATE PROCEDURE P_DataTable( @LocalDT LocalDT READONLY)ASSELECT * FROM @LocalDTGOusing 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(); } }}

本文介绍如何使用SQL Server存储过程与C#中的DataTable进行数据交互。通过创建存储过程接收DataTable参数并返回处理结果,演示了从DataTable读取数据到控制台的过程。此方法适用于批量数据操作场景。

526

被折叠的 条评论
为什么被折叠?



