这段代码是什么意思,特别是后半部分。请高人给写上备注

publicSqlParameterMakeParam(stringParamName,SqlDbTypeDbType,Int32Size,ParameterDirect... public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;

if (Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);

param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
展开
 我来答
vermilion36
2012-03-19 · TA获得超过3372个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:345万
展开全部
//制作一个Sql参数
// ParamName 参数名
// SqlDbType 参数的数据类型
// Size 参数的长度
// 参数的输入输出类型 (输入、输出、输入和输出 三种)
// 该参数的值
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param; //定义一个Sql参数

if (Size > 0) //如果参数长度大于0 那么在给参数定义时 加上参数的长度
param = new SqlParameter(ParamName, DbType, Size); //new 这个参数 并定义它的参数名、参数类型、参数长度
else //如果参数长度<=0 那么说明该参数不指定长度
param = new SqlParameter(ParamName, DbType); //new 这个参数 并定义它的参数名、参数类型

param.Direction = Direction; //参数的输入输出类型
if (!(Direction == ParameterDirection.Output && Value == null)) //在这里做一个判断 (如果是输出参数 且 value值为null) 结果取反 就说明是 输入参数或输入输出参数 或value值不为空 这种情况下 就为参数赋值
param.Value = Value;
return param; //最后返回这个参数
}

总的来说 这个方法 就是为你定义一个SqlCommand.SqlParameter参数而已 没啥说的
更多追问追答
追问
高手。。。那输入和输出参数  在用的时候有什么不同。
追答
输入呢  就是说
比如 我写一个sql语句:
select * from users where id=@id
像这样的情况 这个参数id就需要输入
也许你以前在SqlCommand的sql命令时 是这样写的
string id = "1";
"select * from Users where id='+id+'"
但这样会有风险 容易造成sql注入 所以才会出现参数化的形式
像我写的第一句sql 就是将@id 作为参数 需要传入进去

而输出参数呢 就比如
select @Count=count(*) from users group by Type
像这样 有个参数@Count 就是在sql语句中得到一个结果 可以对这个结果进行输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式