关于sqlparameter加参数的问题

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;
}

private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName, con);
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));

return dap;
}

public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}

问题

为何我想问的是 为何MakeParam 函数 string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value
是这些参数

而 dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
这里 就这么多参数了?
我想问的就是
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
这个好像是返回参数的sqlparameter重新构造函数
那么为何选择有这么多参数的呢
我看了msdn上 构造函数有好多种参数 为何选择这个参数最全的呢
展开
 我来答
旋天渣观9129
2008-07-28 · TA获得超过1487个赞
知道大有可为答主
回答量:1443
采纳率:0%
帮助的人:1608万
展开全部
函数重载一般都是这样实现的:

function1(int x,int y)
{
...
}

function1(int x)
{
function1(x,0);
}

function1()
{
function1(0,0);
}
调用参数少的省事,但多一次函数调用,多压一次栈.
一般要不是在大型的循环里没人计较这个的
不过养成对性能时刻警惕的习惯还是好的
粟珉V3
2008-07-28 · 超过15用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:0
展开全部
new SqlParameter(@courseid,SqlDbType.UniqueIdentifier,16),
///以下照上.
new SqlParameter(PARA_COURSE_NAME,SqlDbType.VarChar,50),
new SqlParameter(PARA_TRAINED_OBJECT,SqlDbType.VarChar,50),
new SqlParameter(PARA_TRAINED_FORM,SqlDbType.VarChar,520),
new SqlParameter(PARA_RECOMMEND_AGENCY,SqlDbType.VarChar,520),
new SqlParameter(PARA_TRAIN_BUDGET,SqlDbType.VarChar,50),
new SqlParameter(PARA_ARRANGE_TIME,SqlDbType.VarChar,50),
new SqlParameter(PARA_TRAIN_OBJECTIVE,SqlDbType.VarChar,50),
new SqlParameter(PARA_FUNDING_REQUIREMENT,SqlDbType.VarChar,50),
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式