求助:如何根据DataSet在数据库中自动创建表

mademelaugh 2007-09-19 11:23:03
我现在正在做一个小例程,需要从oracle数据库随机选取若干个表,依据选择的表创建sql ce数据库,并将数据导入该库。

现在遇到一个问题,被选择的表我事先并不知道,因此要在导入时动态创建这些表,请问采用什么办法根据DataSet在数据库中自动创建表?
...全文
410 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mademelaugh 2007-09-23
  • 打赏
  • 举报
回复
我现在采取的是m777((我的家乡江西新余)) 的方法。不知道还有没有其他好的方法
shiling_02404 2007-09-19
  • 打赏
  • 举报
回复
楼上正解.我也遇到过这样的问题,不过我的知道了字段名和类型
spkl1 2007-09-19
  • 打赏
  • 举报
回复
基本思路这样,可以参考一下:
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);
}


====================
这个应该可行
m777 2007-09-19
  • 打赏
  • 举报
回复

基本思路这样,可以参考一下:
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);
}
jiatong1981 2007-09-19
  • 打赏
  • 举报
回复
select * into 目标表名 from 源表名

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

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧