文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>动态提交表单时,如何获取参数类型

动态提交表单时,如何获取参数类型

时间:2010-11-10  来源:yubinfeng

    再者,为什么要使用参数方法提交,最主要的是参数方式提交可以增强安全性,避免注入式攻击,好处这里就不多说了

    问题:动态提交时,不论是ms sql 还是 oracle 都需要知道参数类型,如何动态获取参数类型。

    直接贴代码:

代码  public OracleType FieldOracleType(string field, string table)
        {

            string type = FieldAttribute(field, table).Rows[0][0].ToString().ToLower() ;

            string[] types = Enum.GetNames(typeof(OracleType));
            foreach (string lx in types)
            {
                if (type == lx.ToLower())
                {
                    type = lx;
                    break;
                }
                else if (type == "varchar2" | type == "nvarchar2")
                {
                    type = "VarChar";
                    break;
                }
                else if (type == "date")
                {
                    type = "DateTime";
                    break;
                }
                else if (type.IndexOf("TIMESTAMP".ToLower()) >= 0)
                {
                    type = "DateTime";
                    break;
                }
            }

            return (OracleType)Enum.Parse(typeof(OracleType), type);

        }

  

如上,通过这个方法,我们只需要传表和字段名,就可以轻公获到参数类型,

其中public DataTable FieldAttribute(string field, string table)方法是返回字段属性的

如下:

 

代码         /// <summary>
        ///返回字段的属性
         /// </summary>
        /// <param name="field"></param>
        /// <param name="table"></param>
        /// <returns></returns>
        public DataTable FieldAttribute(string field, string table)
        {
            if (ColumnExists(table, field))
            {
                string sql = "select data_type,user_tab_columns.DATA_LENGTH,user_tab_columns.DATA_PRECISION,user_tab_columns.DATA_SCALE  from user_tab_columns where table_name ='" + table.ToUpper() + "' and user_tab_columns.COLUMN_NAME='" + field.ToUpper() + "'";
                DataTable dt = Query(sql).Tables[0];
                return dt;

            }
            else
            {
                return null;
            }
        }

 

 

调于示例:

 OracleParameter xtpt1 = new OracleParameter("参数名", bllcom.FieldOracleType("字段名", 表名));
 xtpt1.Value = "值";
 

 

Ms Sql同上。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载