《ASP.NET项目开发全程实录》第一章SqlParameter参数的转换
发表在ASP.NET图书答疑 2010-08-13
是否精华
版块置顶:
[font size=4][font size=3][strong]在DataBase.cs里的代码:[/strong]
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
    {
         return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
    }

public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
    {
        SqlParameter param;
[font color=#FF0000] 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;
[/font]        return param;
    }

[font size=4]我觉得红颜色的这些部分是[strong]多余的[/strong],在参数的转换过程中根本就没有起到任何作用。 
输入参数必须要有初值,不然编译通不过。 参数的大小即使设为0,编译也能通过,[strong]个人觉得参数的转换没有起到任何的作用,MakeParam(string ParamName, SqlDbType DbType, Int32 Size,ParameterDirection Direction, object Value)这个函数就是多余的???[/strong][/font]

再个就是:
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
    {
        // 确认打开连接
        this.Open();
        SqlCommand cmd = new SqlCommand(procName, con);
        cmd.CommandType = CommandType.Text;     //执行类型:命令文本

        // 依次把参数传入命令文本
        if (prams != null)
        {
            foreach (SqlParameter parameter in prams)
             cmd.Parameters.Add(parameter);
        }
        // 加入返回参数
      [font color=#FF0000]  cmd.Parameters.Add(
            new SqlParameter("ReturnValue", SqlDbType.Int, 4,
            ParameterDirection.ReturnValue, false, 0, 0,
            string.Empty, DataRowVersion.Default, null));

        return cmd;
[/font]    }
书中就一直都没有用到存储过程,数据库db_SIS里存储过程也没有Return的返回值,为什么还要加入返回参数???[/font][/font]
这两个问题感到很困惑,麻烦老师看看,谢谢!!!
分享到:
精彩评论 1
大伟_mrkj
学分:0 LV1
2010-08-13
沙发
您好!
1、MakeParam(string ParamName, SqlDbType DbType, Int32 Size,ParameterDirection Direction, object Value)这个函数就是多余的???
你可以把这段代码删除下,然后看下程序是否能正常运行。就可以知道它重要与否。
public SqlParameter( 
string parameterName, 
SqlDbType dbType, 
int size, 
ParameterDirection direction, 
bool isNullable, 
byte precision, 
byte scale, 
string sourceColumn, 
DataRowVersion sourceVersion, 
object value 
); 
参数 
parameterName 
要映射的参数的名称。 
dbType 
SqlDbType 值之一。 
size 
参数的长度。 
direction 
ParameterDirection 值之一。 
isNullable 
如果该字段的值可为空,则为 true,否则为 false。 
precision 
要将 Value 解析为的小数点左右两侧的总位数。 
scale 
要将 Value 解析为的总小数位数。 
sourceColumn 
源列的名称。 
sourceVersion 
DataRowVersion 值之一。 
value 
一个 Object,它是 SqlParameter 的值。
2、书中就一直都没有用到存储过程,数据库db_SIS里存储过程也没有Return的返回值,为什么还要加入返回参数???
我们把这个类文件提供给大家 主要是想让大家能对程序有个扩展,例如 你可以把这个程序更改成存储过程的。
 这里非常感谢你提出这样好的问题,我们正对 《ASP.NET项目开发全程实录》正在改版,已经把读者们的先前提出的宝贵意见采纳,欢迎再次给我们提出好的建议!
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照