日期:2014-05-18  浏览次数:21031 次

求助:如何根据DataSet在数据库中自动创建表
我现在正在做一个小例程,需要从oracle数据库随机选取若干个表,依据选择的表创建sql   ce数据库,并将数据导入该库。

现在遇到一个问题,被选择的表我事先并不知道,因此要在导入时动态创建这些表,请问采用什么办法根据DataSet在数据库中自动创建表?

------解决方案--------------------
select * into 目标表名 from 源表名

//首先循环在ds中获得所有源表名ds.Tables[index].TableName; 然后循环拼写sql 用Command.ExecuteNonQuery()执行


------解决方案--------------------

基本思路这样,可以参考一下:
ArrayList al = new ArrayList(); //创建表要执行的SQL
foreach(DataTable dt in ds.Tables) //循环数据表
{
//获取创建表的SQL
string sSql = "Create DataTable " + dt.TableName + " ( ";
foreach(DataColumn dc in dt.Columns) //循环列
{
//获取创建表的SQL,具体自己再发挥
sSql = sSql + dc.ColumnName + dc.DataType.ToString() + ", ";
}
sSql.Substring(0,sSql.Length -1) + ") ";
al.Add(sSql);
}
------解决方案--------------------
基本思路这样,可以参考一下:
ArrayList al = new ArrayList(); //创建表要执行的SQL
foreach(DataTable dt in ds.Tables) //循环数据表
{
//获取创建表的SQL
string sSql = "Create DataTable " + dt.TableName + " ( ";
foreach(DataColumn dc in dt.Columns) //循环列
{
//获取创建表的SQL,具体自己再发挥
sSql = sSql + dc.ColumnName + dc.DataType.ToString() + ", ";
}
sSql.Substring(0,sSql.Length -1) + ") ";
al.Add(sSql);
}


====================
这个应该可行
------解决方案--------------------
楼上正解.我也遇到过这样的问题,不过我的知道了字段名和类型