CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

高手问题:已知一个表结构,想要创建 一个和该表结构一样的表.请问应如和做呢?

楼主aqqwbjgvkgsmq(欧阳如风)2003-12-02 09:58:10 在 .NET技术 / C# 提问

已知一个表结构,想要创建   一个和该表结构一样的表.请问应如和做呢?  
  要求程序自动创键..比如我输入一个表名.程序自动创建一个和该表一样结构的表.  
  我不是高手,我不知道了.呵呵 问题点数:50、回复次数:11Top

1 楼brightheroes(在地狱中仰望天堂)回复于 2003-12-02 10:01:08 得分 3

第一步,根据输入的表名,得到表的结构信息  
  第二步,生成create   table   sql语句  
  第三步,执行  
  Top

2 楼gshope(北京.Net)回复于 2003-12-02 10:02:27 得分 2

select   *   into   table2   from   table1   where   这里是一个返回空记录集合的条件Top

3 楼brightheroes(在地狱中仰望天堂)回复于 2003-12-02 10:05:16 得分 8

ds.Tables[0].Columns.Count;  
  ds.Tables[0].Columns[i].AllowDBNull;  
  ds.Tables[0].Columns[i].AutoIncrement;  
  ds.Tables[0].Columns[i].ColumnName;  
  ds.Tables[0].Columns[i].DataType;  
  ds.Tables[0].Columns[i].DefaultValue;  
  之类的信息  
  Top

4 楼gabriel1(说自己的话,让别人走路去吧)回复于 2003-12-02 10:08:11 得分 8

基本思路如下,  
  1、读出所有表  
  2、逐个读取所有表结构,如楼上  
  3、create   table语句写表。Top

5 楼cuike519(I will be back!)回复于 2003-12-02 10:12:30 得分 5

直接科隆(Clone)!Top

6 楼cuike519(I will be back!)回复于 2003-12-02 10:16:37 得分 5

Clone:   受   .NET   Framework   精简版的支持。   克隆   DataTable   的结构,包括所有   DataTable   架构和约束。  
     
  Copy:   复制该   DataTable   的结构和数据    
  Top

7 楼eyestrong(有时爱情图有虚名)回复于 2003-12-02 10:18:48 得分 5

DataTable   cloneTable;  
          cloneTable   =   myDataTable.Clone();  
  Top

8 楼Edelweissobject(青山绿水)回复于 2003-12-02 10:23:46 得分 8

楼上的说的对,先返回一个已知表的空结构,再根据已知表的空结构的每一字段的信息,动态生成创建表的sql语句,如果是要转换很多表的话,可以专门写成一个函数。我以前做过从sql导出到Access就是这样做的。private   string   ReturnCreateTabelString(DataSet   MyDs,string   TableName)  
  {  
  string     str="";  
                                          string     DataType="";  
  str="Create   Table   "+TableName   +"(";  
  if(MyDs!=null)  
  {  
                                           
  for(int   i=1;i<MyDs.Tables[0].Columns.Count;i++)  
  {  
   
  DataType=Convert.ToString(MyDs.Tables[0].Columns[i].DataType);  
  if((DataType=="System.Int32")||(DataType=="System.Decimal")||(DataType=="System.Byte")||(DataType=="System.Double")||(DataType=="System.Int16"))  
  str=str+MyDs.Tables[0].Columns[i].ColumnName+"   "+"Double"+",";  
  if(DataType=="System.String")  
  str=str+MyDs.Tables[0].Columns[i].ColumnName+"   "+"String"+",";  
  if(DataType=="System.DateTime")  
  str=str+MyDs.Tables[0].Columns[i].ColumnName+"   "+"DateTime"+",";  
  if(i==MyDs.Tables[0].Columns.Count-1)  
  str=str.Remove(str.Length-1,1)+")";  
  }  
                                           
  return   str;  
  }  
                                                          else  
  return   str="";  
  }  
   
   
  }  
  }Top

9 楼eyestrong(有时爱情图有虚名)回复于 2003-12-02 10:31:05 得分 4

如果只是输入表名的话可以这样做。  
  首先从sqlserver的数据库中找到这个表(通过查询系统表的方法)。  
  select   name   from   sysobjects   where   xtype='U'   and   name='[tablename]'  
  然后查找这个表的任意数据fill入数据集并克隆:  
  select   top   1   *   from   [talblename];  
  ....  
  //克隆(在上面有)  
  .....  
  //这样就可以取得这个表的所有结构和约束了。  
  //将新表加入数据集并更新数据库  
  .....  
  //完成。  
  Top

10 楼Wuzhou98(还在学习...)回复于 2003-12-02 10:52:35 得分 2

select   *   into   table2   from   table1   where   falseTop

11 楼aqqwbjgvkgsmq(欧阳如风)回复于 2003-12-04 12:32:56 得分 0

分给的确不算合理,但就这么多了,要是不满宜给我发短消息,没关系,接着给.  
  Top

相关问题

  • 如何创建表结构?
  • 怎么创建根已知表结构一样的表?
  • 如何用sql语句 创建与已知表结构相同的表(解决马上给分)
  • 怎么复制表的结构以创建一个新表?
  • 简单问题:创建一个表只有表结构
  • 创建相同表结构的SQL语句是怎样写的?
  • oracle中怎么对创建的表结构修改?
  • 请问,怎样创建相同结构的表呢?
  • 请问,如何根据已有表的表结构创建新表?
  • 在sql语法里能不能有好得办法实现创建和一个已知表结构相同的新表?

关键词

  • 结构
  • 语句
  • ds
  • 信息
  • 表
  • 创建
  • datatable
  • columns
  • 所有
  • table

得分解答快速导航

  • 帖主:aqqwbjgvkgsmq
  • brightheroes
  • gshope
  • brightheroes
  • gabriel1
  • cuike519
  • cuike519
  • eyestrong
  • Edelweissobject
  • eyestrong
  • Wuzhou98

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo