c# 获取存储过程参数名和类型

问题是这样,sqlServer里边有个存储过程定义成这样createproceduregetCourseByStudentId@stuIdintasselect……然后现... 问题是这样,
sqlServer里边有个存储过程定义成这样
create procedure getCourseByStudentId

@stuId int
as
select……
然后现在在C#里边,只知道过程名是getCourseByStudentId(数据库已经连接好了)
有什么方法获取到这个存储过程的参数个数,参数类型和参数的名字啊
(在这里就只有一个参数stuId和它的类型int)
展开
 我来答
百度网友ce7f3ccb4
2015-04-22 · TA获得超过1950个赞
知道大有可为答主
回答量:2299
采纳率:0%
帮助的人:1907万
展开全部
好科幻啊!!你想做什么啊?
存储过程在C#中是以字符串的形式来表现的,怎么可能 啊,
再说了 C#中根本没有存储过程类型的定义,只有早SQL中才有的,两个不同的语言不可能的,除非你去数据库中查询!!
但是这个又是多此一举的做法!!
select name as 参数名称,xusertype 参数数据类型,length 参数数据长度 from syscolumns where id =(select id from sysobjects where name='存储过程名称')
这个查询出来全部是字符串的,你还要自己去解析成C#中的对应的数据类型,然后你对它又怎么赋值呢?
C#调用存储过程的是要先给参数赋值的,也就是说要知道参数类型然后在对应的赋值的,难不成你想动态获取,动态赋值,这个好像不现实哦!!同学。这个是好神费力的事情 啊!!
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
超大蒲公英
2015-04-22 · TA获得超过741个赞
知道小有建树答主
回答量:758
采纳率:75%
帮助的人:741万
展开全部
using (var conn = new SqlConnection(ConnectionString))
{
conn.Open();
var restrictions = new string[3];
restrictions[2] = "getCourseByStudentId";
var d = conn.GetSchema("ProcedureParameters", restrictions);
}
得到的d变量,是一个datatable对象,里面有你想要的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maibee
2018-01-17
知道答主
回答量:2
采纳率:0%
帮助的人:2万
展开全部
使用OracleCommandBuilder.DeriveParameters
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greystar_cn
推荐于2018-01-17 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
到数据库里看存储过程结构,就知道实际要什么参数
追问
一定要到数据库里边看么?
有没有什么api函数可以直接获取的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式