第一步,根据输入的表名,得到表的结构信息
第二步,生成create table sql语句
第三步,执行
第二步,生成create table sql语句
第三步,执行
解决方案 »
- WPF 调用线程无法访问此对象,因为另一个线程拥有该对象
- 大家帮我看看问题在那里,具体内容看帖子,内赋代码
- 菜鸟求助:要让TextBox只能接受6位数字,怎么实现啊?
- 有没有好的校园OA系统呢?
- 怎么把路径字符串转换成...格式的?
- 是c#的高手就应该进来看一下
- 大家来帮忙做做面试题目3
- 关于IsDBNull的一些问题
- 请高手赐教,,,在线等
- c#代码出现异常:未将对象引用设置到对象的实例,如何解决?
- 未处理的“System.Reflection.TargetInvocationException”类型的异常出现在 mscorlib.dll 中: 怎么回事?
- 急急,谁能帮我解决一个C#中DATAGIRD的问题
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;
之类的信息
1、读出所有表
2、逐个读取所有表结构,如楼上
3、create table语句写表。
Copy: 复制该 DataTable 的结构和数据
cloneTable = myDataTable.Clone();
{
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="";
}
}
}
首先从sqlserver的数据库中找到这个表(通过查询系统表的方法)。
select name from sysobjects where xtype='U' and name='[tablename]'
然后查找这个表的任意数据fill入数据集并克隆:
select top 1 * from [talblename];
....
//克隆(在上面有)
.....
//这样就可以取得这个表的所有结构和约束了。
//将新表加入数据集并更新数据库
.....
//完成。