1.在数据库中创建Type 类型
Use TestTVP --假设已经建立了TestTVP 数据库和TestTVP 的schema
go
--创建TVP
CREATE
TYPE Test.TestTVP AS TABLE
{
SNo varchar(20) Not NULL,
SName varchar(50)
}
go
--创建使用TVP的存储过程
Create
PROCEDURE TestTVP.testTVP_Proc
@StudentTVP Test.TestTVP
as
Select * from @StudentTVP
-- 对@StudentTVP 做其它操作...
go
2.连接上数据库并使用对的Type创建DBTable
SqlConnection conn= new SqlConnection();
conn.ConnectionString = "initial catalog=northwind;data source=localhost;Integrated Security=SSPI;connect Timeout=20";
conn.Open();
DataTable tableTVP = this.CreateDataTableFromTvpTypeName(conn,"Test.TestTVP ");
//对tableTVP 进行填充
......
3.将DBTable传给存储过程
SqlCommand TVPcmd = new SqlCommand ("TestTVP.testTVP_Proc",conn);
TVPcmd. CommandType =
CommandType.StoredProcedure;
SqlParameter TVPSqlParameter=
TVPcmd.Parameters.AddWithValue("@StudentTVP", tableTVP);
TVPSqlParameter.SqlDbType = System.Data.SqlDbType.Structured;
TVPSqlParameter.TypeName ="Test.TestTVP ";
TVPcmd.ExecuteNonQuery();
4.在存储过程使用传入的DBTable
.....见存储过程的定义