Any*_*ope 6 c# sql-server-2012
我正在尝试编写一个ac#program,它创建一个整表来发送回sql server存储过程.
我遇到了msdn指南但却变得非常困惑:http: //msdn.microsoft.com/en-us/library/cc879253.aspx
我尝试使用msdn指南,但是尽管按照编译器的建议添加了对microsoft.sqlserver.smo,microsoft.sqlserver.connectioninfo,microsoft.sqlserver.management.sdk.sfc的引用,但仍然出错.错误是:"为userdefinedtabletype设置父级失败".(基于msdn指南的代码片段)
Server srv = new Server();
Database db = srv.Databases["MyDatabase"];
//fails at this line
UserDefinedTableType udtt = new UserDefinedTableType(db, "TestTable");
udtt.Columns.Add(new Column(udtt, "Col1", DataType.Int));
udtt.Create();
Run Code Online (Sandbox Code Playgroud)
我只是希望能够构建一个用户定义的数据表,我在这里找到的唯一相关问题只涉及在SQL中创建用户定义的表,而不是C#.
我的SQL Server连接代码是这样的:
DataSet ds = new DataSet("SQLDatabase");
using (SqlConnection conn = new SqlConnection(Settings.Default.SQLConnectionString))
{
SqlCommand sqlComm = new SqlCommand("StoredProcedure", conn);
sqlComm.Parameters.AddWithValue("@param", paramValue);
sqlComm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = sqlComm;
da.Fill(ds);
}
Run Code Online (Sandbox Code Playgroud)
请有人用简单的语言向我展示如何在我的C#程序中创建用户定义的表类型?
希望我已经足够清楚了,先谢谢你.
Hab*_*bib 20
最简单的选择是创建一个DataTable
C#代码并将其作为参数传递给您的过程.假设您已创建用户定义的表类型:
CREATE TYPE [dbo].[userdefinedtabletype] AS TABLE(
[ID] [varchar](255) NULL,
[Name] [varchar](255) NULL
)
Run Code Online (Sandbox Code Playgroud)
然后在你的C#代码中你会做:
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof (string));
dt.Columns.Add("Name", typeof (string));
//populate your Datatable
SqlParameter param = new SqlParameter("@userdefinedtabletypeparameter", SqlDbType.Structured)
{
TypeName = "dbo.userdefinedtabletype",
Value = dt
};
sqlComm.Parameters.Add(param);
Run Code Online (Sandbox Code Playgroud)
请记住指定SqlDbType.Structured
参数类型并指定在创建UDT时使用的名称.
归档时间: |
|
查看次数: |
25144 次 |
最近记录: |