数据库里有很多个表,表的结构:
field_1 field_2 field_3……假设每一个表的字段数都不一样在ASP.net中怎样能动态的向这些表中的某一个表插入数据??

解决方案 »

  1.   

    你可以把表的字段名和字段对应的值都放到字典里。然后执行方法,给这个方法传入表名和对应的字典。然后用这个方法根据字典的相关值来生成SQL语句。
      

  2.   

    ? 什么意思?
    动态@sql : insert  into  @表 (@字段)values (@值)
    exec(@sql)
      

  3.   

    要结合ASP.net和sql的。现在我的想法是,在SQL里
    一个表贮存所有的字段,如:
    tbFieldTotal:[tableName] [field]
    table1        001
    table1        002
    table1        003
    table2        001那在ASP.net层的页面该如何写最好?
      

  4.   

    ruanruoshi(软若石) 
    你可以把表的字段名和字段对应的值都放到字典里。然后执行方法,给这个方法传入表名和对应的字典。然后用这个方法根据字典的相关值来生成SQL语句。
      
    什么意思?
      

  5.   

    和你说的把字段放到表里差不多。我的意思是说把字段和字段对应的值放到内存的字典里。像哈希表等。然后传到一个方法里。用这个方法来动态生成SQL语句。
      

  6.   

    哪动态生成SQL语句是怎样的??能距离看看吗??
      

  7.   


    public string CreateSQL(string tableName,Hashtable ht)
    {
    String sql="insert into " + tableName + " (";
    String sqlV="values(";
    foreach(DictionaryEntry myEntry in ht)
    {
    sql += myEntry.Key.ToString() + ",";
    sqlV += "'\"+" + myEntry.Key.ToString() + " +\"',";
    }
    sql=sql.Substring(0,sql.Length-1);
    sqlV=sqlV.Substring(0,sqlV.Length-1);
    sql+=") ";
    sqlV += ") ";
    sql+=sqlV;
    return sql;
    } private void Button1_Click(object sender, System.EventArgs e)
    {
    Hashtable ht=new Hashtable();
    ht.Add("AA","11");
    ht.Add("BB","22");
    ht.Add("CC","33");
    Response.Write(CreateSQL("myTable",ht));
    }可以再对上面的方法优化一下或用parameters参数的形式。
      

  8.   

    结果:insert into myTable (CC,AA,BB) values('"+CC +"','"+AA +"','"+BB +"')
      

  9.   

    没有接触过hash表,不过还明白了大概的意思。谢谢。我现在的想法是:
    1、得到字段的总数
    2、生成text控件
    3、用for生成SQL语句这样就应该没问题了