c# 获取存储过程参数名和类型
问题是这样,sqlServer里边有个存储过程定义成这样createproceduregetCourseByStudentId@stuIdintasselect……然后现...
问题是这样,
sqlServer里边有个存储过程定义成这样
create procedure getCourseByStudentId
@stuId int
as
select……
然后现在在C#里边,只知道过程名是getCourseByStudentId(数据库已经连接好了)
有什么方法获取到这个存储过程的参数个数,参数类型和参数的名字啊
(在这里就只有一个参数stuId和它的类型int) 展开
sqlServer里边有个存储过程定义成这样
create procedure getCourseByStudentId
@stuId int
as
select……
然后现在在C#里边,只知道过程名是getCourseByStudentId(数据库已经连接好了)
有什么方法获取到这个存储过程的参数个数,参数类型和参数的名字啊
(在这里就只有一个参数stuId和它的类型int) 展开
4个回答
展开全部
好科幻啊!!你想做什么啊?
存储过程在C#中是以字符串的形式来表现的,怎么可能 啊,
再说了 C#中根本没有存储过程类型的定义,只有早SQL中才有的,两个不同的语言不可能的,除非你去数据库中查询!!
但是这个又是多此一举的做法!!
select name as 参数名称,xusertype 参数数据类型,length 参数数据长度 from syscolumns where id =(select id from sysobjects where name='存储过程名称')
这个查询出来全部是字符串的,你还要自己去解析成C#中的对应的数据类型,然后你对它又怎么赋值呢?
C#调用存储过程的是要先给参数赋值的,也就是说要知道参数类型然后在对应的赋值的,难不成你想动态获取,动态赋值,这个好像不现实哦!!同学。这个是好神费力的事情 啊!!
存储过程在C#中是以字符串的形式来表现的,怎么可能 啊,
再说了 C#中根本没有存储过程类型的定义,只有早SQL中才有的,两个不同的语言不可能的,除非你去数据库中查询!!
但是这个又是多此一举的做法!!
select name as 参数名称,xusertype 参数数据类型,length 参数数据长度 from syscolumns where id =(select id from sysobjects where name='存储过程名称')
这个查询出来全部是字符串的,你还要自己去解析成C#中的对应的数据类型,然后你对它又怎么赋值呢?
C#调用存储过程的是要先给参数赋值的,也就是说要知道参数类型然后在对应的赋值的,难不成你想动态获取,动态赋值,这个好像不现实哦!!同学。这个是好神费力的事情 啊!!
展开全部
using (var conn = new SqlConnection(ConnectionString))
{
conn.Open();
var restrictions = new string[3];
restrictions[2] = "getCourseByStudentId";
var d = conn.GetSchema("ProcedureParameters", restrictions);
}
得到的d变量,是一个datatable对象,里面有你想要的。
{
conn.Open();
var restrictions = new string[3];
restrictions[2] = "getCourseByStudentId";
var d = conn.GetSchema("ProcedureParameters", restrictions);
}
得到的d变量,是一个datatable对象,里面有你想要的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用OracleCommandBuilder.DeriveParameters
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-01-17 · 知道合伙人软件行家
关注
展开全部
到数据库里看存储过程结构,就知道实际要什么参数
追问
一定要到数据库里边看么?
有没有什么api函数可以直接获取的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询