c# 获取存储过程参数名和类型
发布网友
发布时间:2022-04-20 01:36
我来回答
共4个回答
热心网友
时间:2022-04-11 16:53
好科幻啊!!你想做什么啊?
存储过程在C#中是以字符串的形式来表现的,怎么可能 啊,
再说了 C#中根本没有存储过程类型的定义,只有早SQL中才有的,两个不同的语言不可能的,除非你去数据库中查询!!
但是这个又是多此一举的做法!!
select name as 参数名称,xusertype 参数数据类型,length 参数数据长度 from syscolumns where id =(select id from sysobjects where name='存储过程名称')
这个查询出来全部是字符串的,你还要自己去解析成C#中的对应的数据类型,然后你对它又怎么赋值呢?
C#调用存储过程的是要先给参数赋值的,也就是说要知道参数类型然后在对应的赋值的,难不成你想动态获取,动态赋值,这个好像不现实哦!!同学。这个是好神费力的事情 啊!!
热心网友
时间:2022-04-11 18:11
using (var conn = new SqlConnection(ConnectionString))
{
conn.Open();
var restrictions = new string[3];
restrictions[2] = "getCourseByStudentId";
var d = conn.GetSchema("ProcereParameters", restrictions);
}
得到的d变量,是一个datatable对象,里面有你想要的。
热心网友
时间:2022-04-11 19:46
使用OracleCommandBuilder.DeriveParameters
热心网友
时间:2022-04-11 21:37
到数据库里看存储过程结构,就知道实际要什么参数追问一定要到数据库里边看么?
有没有什么api函数可以直接获取的