已有57人关注
C# 自学视频教程 第21章疑问
发表在C#图书答疑 2016-08-20
是否精华
版块置顶:
作为明日资料的忠实粉丝,感觉C#自学视频教程当中第21章提到的SqlParameter MakeInParam()、SelectCommand.Parameters、SqlParameter parameter在配套资料上没有提及,所以在看下面类似代码时很迷茫,你能帮忙简述这几个东西的用法吗?也可以提供一些用于了解的资料,个人邮箱:e23456@foxmail.com,谢谢!

.......
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
        {
            return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);//创建SQL参数
        }
 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);//根据指定的类型和大小创建SQL参数
            else
                param = new SqlParameter(ParamName, DbType);//根据指定的类型创建SQL参数
            param.Direction = Direction;//设置SQL参数的类型
            if (!(Direction == ParameterDirection.Output && Value == null))//判断是否为输出参数
                param.Value = Value;//设置参数返回值
            return param;//返回SQL参数
        }
        #endregion

        #region   执行参数命令文本(无数据库中数据返回)
        /// <summary>
        /// 执行命令
        /// </summary>
        /// <param name="procName">命令文本</param>
        /// <param name="prams">参数对象</param>
        /// <returns></returns>
        public int RunProc(string procName, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateCommand(procName, prams);//创建SqlCommand命令对象
            cmd.ExecuteNonQuery();//执行SQL命令
            this.Close();//关闭数据库连接
            return (int)cmd.Parameters["ReturnValue"].Value;//得到执行成功返回值
        }
        /// <summary>
        /// 直接执行SQL语句
        /// </summary>
        /// <param name="procName">命令文本</param>
        /// <returns></returns>
        public int RunProc(string procName)
        {
            this.Open();//打开数据库连接
            SqlCommand cmd = new SqlCommand(procName, con);//创建SqlCommand命令对象
            cmd.ExecuteNonQuery();//执行SQL命令
            this.Close();//关闭数据库连接
            return 1;//返回1,表示执行成功
        }

        #endregion

        #region   执行参数命令文本(有返回值)
.......
 private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
        {
            this.Open();//打开数据库连接
            SqlDataAdapter dap = new SqlDataAdapter(procName, con);//创建桥接器对象
            dap.SelectCommand.CommandType = CommandType.Text;//指定要执行的类型为命令文本
            if (prams != null)//判断SQL参数是否不为空
            {
                foreach (SqlParameter parameter in prams)//遍历传递的每个SQL参数
                    dap.SelectCommand.Parameters.Add(parameter);//将SQL参数添加到执行命令对象中
            }
            //加入返回参数
            dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
                ParameterDirection.ReturnValue, false, 0, 0,string.Empty, DataRowVersion.Default, null));
            return dap;//返回桥接器对象
        }
        #endregion
........
分享到:
精彩评论 4
azby2016
学分:0 LV1
2016-08-20
沙发
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
读者朋友:
    您好,MnParam()是自定义的方法名、SelectCommand用来设置选择命令的,.Parameters表示参数集合、SqlParameter是SQL参数,用来自定义参数,并设置参数的类型。
[/FIELDSET]

回复:
谢谢你的解释,前两个没问题
SqlParameter是SQL参数---是指COMMAND所执行的SQL语句中的参数吗?
那.Parameters表示参数集合是指哪里的参数呢?
azby2016
学分:0 LV1
2016-08-25
板凳
明白了,,谢谢。。
首页上一页 1 下一页尾页 2 条记录 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经营性网站备案信息 营业执照