比如一个数据表中有近100张表,结构类似,都是usr1 usr2 表之类的。只是其中的一些项不同
usr1 只有 name sex 而usr2 可能有name age sex marry 等,而user3可能只有 name age 如何编写一个 通用的用户资料添加页呢?根据表的字段,动态生成文本框,并获取返回值,成功加入数据库呢?请朋友们帮忙!对于热心的朋友,分不够会专门开贴送分!

解决方案 »

  1.   

    datagrid能自动生成对应数据库中的列,另外还需要列出数据库中所有的表对吧

    select name from sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1
    然后绑定到Dropdownlist让用户选择,然后动态生成sql语句绑定到datagrid
    要是不用datagrid的话需要解决的就是字段数量不一样的问题了

    select name from syscolumns where object_name(id)='tablename'
    可以获得一个表中的所有列名,录入的时候也别用动态控件了,直接按照所有表中列最多的那个表的列数静态生成对应个数的Label和Textbox,把用不着的隐藏就行了
    点添加后逐个字段生成insert语句,执行就好了动体生成控件的话也可以,不过有不少需要注意的地方
      

  2.   

    谢谢以上两位朋友,无法使用DataGrid,上面我说不同的表 user1 user2里的字段,是经过简化的,实际上,每个表的只有一个ID  参数ID,这个参数ID指向一个表,这个表里的每个记录,是描述的一个参数的确定值。比如说  user1表中 这样定义 ID varID
                               2   1那么参数表有这样的记录
    varname tableID
    性别      2
    姓名      2
    年龄      2user1中的参数并不是直接定义在其中,而是由参数表的记录来确定的,这样的话,直接使用DataGrid就不方便,而且也无法事先统计好参数最多的表,只能使用动态生成控件,并获取输入值的办法了