需要对Access数据库表中的列名进行修改,该如何实现? 
例:表A(只包含一个属性)中有一条记录"kkk",而kkk要作为表B中的一个列名。在对表A中的该条记录修改时,系统需要对表B中的列名也进行更新,用SQL语句好像无法实现。 大家帮帮忙,小弟在此叩谢了!

解决方案 »

  1.   

    可能楼主是想开发一套不用OFFICE 的ACCESS管理软件吧。。
      

  2.   

    列表名称可以修改 但是数据可能会丢失~~
    例如同类型由大变小,或变成不同类型,由大变小会丢失一些大的数据,变成不同在类型,就会全部丢失.
    用SQL好像不能修改,但用ADO或ADO.NET没问题
    MyTable.Columns[MyFieldName].Name = strNewName  //ADO建议不要设计可修改列名的系统,这种方式是很危险的,简单来说,如果你有个升级的版本,你都不知道用户将列名改为什么样子啦!
      

  3.   

    用存储过程,数据不丢 
    ModTable("alter table B add temp text(255)");
    ModTable("update B Set temp=要修列名称);
    ModTable("alter table B drop 要修列名称);
    ModTable("alter table B add 新创建的列名称 字段属性);
    ModTable("update B Set 新创建的列名称 = temp");
    ModTable("alter table B drop temp"); public void ModTable()
            {       mySQL.Open();
                    OleDbCommand Cmd = new OleDbCommand(SQL, conn);
                    Cmd.ExecuteNonQuery();
                    Cmd.Dispose();
                    mySQL.Close();
             }
      

  4.   

    我晕,数据库这样的设计肯定是有问题了,其实不用想怎么用SQL语句实现,还是好好想一下你的数据库怎么设计好了
      

  5.   

    用类似ACCESS交叉查询的方式也可以实现的
      

  6.   

    使用adox
    代码参见
    http://dotnet.aspx.cc/article/89137097-0313-4197-aebf-116e391e354a/read.aspx
      

  7.   

    收费项目表(收费项目ID,项目名称,……)
    病人收费单表(收费单ID,……)
    病人收费项目表(收费单ID,收费项目ID,费用,……)
      

  8.   

    用Table.Columns[Index].Name修改名字
    只是改列名,Index是索引号啊,怎么能丢呢,用Index访问......
      

  9.   

    回楼上: Table是放在缓存里的吧? 你这样无法修改到数据库的吧?