none
sqlparameter 生成参数 RRS feed

  • 问题

  • 看了discuz的.net源码,发现在提交数据的时候,有一个专门生成参数的功能,  以下代码加粗的是.

            /// <summary>
            /// 添加友情链接
            /// </summary>
            /// <param name="displayOrder">显示顺序</param>
            /// <param name="name">名称</param>
            /// <param name="url">链接地址</param>
            /// <param name="note">备注</param>
            /// <param name="logo">Logo地址</param>
            /// <returns></returns>
            public int AddForumLink(int displayOrder, string name, string url, string note, string logo)
            {
                DbParameter[] parms = {
                                            DbHelper.MakeInParam("@displayorder", (DbType)SqlDbType.Int, 4, displayOrder),
                                            DbHelper.MakeInParam("@name", (DbType)SqlDbType.NVarChar, 100, name),
                                            DbHelper.MakeInParam("@url", (DbType)SqlDbType.NVarChar, 100, url),
                                            DbHelper.MakeInParam("@note", (DbType)SqlDbType.NVarChar, 200, note),
                                            DbHelper.MakeInParam("@logo", (DbType)SqlDbType.NVarChar, 100, logo)
                                        };

                string commandText = string.Format("INSERT INTO [{0}forumlinks] ([displayorder], [name],[url],[note],[logo]) VALUES (@displayorder,@name,@url,@note,@logo)",
                                                    BaseConfigs.GetTablePrefix);
                return DbHelper.ExecuteNonQuery(CommandType.Text, commandText, parms);
            }

     

     

     

            #region 生成参数

            public static DbParameter MakeInParam(string ParamName, DbType DbType, int Size, object Value)
            {
                return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
            }

            public static DbParameter MakeOutParam(string ParamName, DbType DbType, int Size)
            {
                return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
            }

            public static DbParameter MakeParam(string ParamName, DbType DbType, Int32 Size, ParameterDirection Direction, object Value)
            {
                DbParameter param;

                param = Provider.MakeParam(ParamName, DbType, Size);

                param.Direction = Direction;
                if (!(Direction == ParameterDirection.Output && Value == null))
                    param.Value = Value;

                return param;
            }

            #endregion 生成参数结束

    如果我想把这个生成参数的功能改成专门针对sql的,应该如何写,麻烦各位指点

     

    • 已编辑 xiawei_hi 2010年6月30日 6:01 完善
    • 已移动 孟宪会Moderator 2010年7月2日 7:54 (发件人:.NET Framework 一般性问题讨论区)
    2010年6月30日 6:00

答案

  •  public static SqlParameter CreateReturnParameter(string parameterName)

            {

                return new SqlParameter(parameterName, SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null);

            }

    你改成SQL,使用SqlParameter参熟

     


    .net/asp.net开发群118343907
    2010年7月1日 0:39

全部回复