
问题描述:
在SQL数据库里已有一个现成的空数据表(只有字段、没有数据),请问高手,怎样在VB.NET中用SQL语句把该数据库中的那个表复制一个到该数据库(字段不变、数据为空)只是把数据表的名改了?
谢谢!谢谢!
解析:
select * into 新表 from 旧表
使用 SELECT INTO 插入行
SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义,例如:
SELECT Shippers.*, Link.Address, Link.City,
Link.Region, Link.PostalCode
INTO NewShippers
FROM Shippers
JOIN LinkServer.DB.dbo.Shippers AS Link
ON (Shippers.ShipperID = Link.ShipperID)
SELECT INTO 可将几个表或视图中的数据组合成一个表。也可用于创建一个包含选自链接服务器的数据的新表。
首先在项目的VB.NET界面,使用菜单【项目】--【添加引用】--【COM】
选择 Microsoft ADO Ext. 2.x for DDL and Security
然后单击【确定】,完成引用。
完整代码如下:
Imports ADOXPublic Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'创建空的access数据库文件--数据库文件.mdb,密码为123
Dim Mycat As Catalog = New Catalog()
Mycat.Create("Provider=Microsoft.Jet.OLEDB.4.0Jet OLEDB:Engine Type=5Data Source= 数据库文件.mdbJet OLEDB:Database Password=123")
'以下代码创建一个名为“实验数据表”
Dim MyTable As ADOX.Table = New ADOX.Table '定义新表
MyTable.Name = "实验数据表" '表命名
'给表“实验数据表” 创建一个字符串字段,字段名“姓名”
MyTable.Columns.Append("姓名", , ADOX.DataTypeEnum.adWChar)
'给表“实验数据表” 创建一个整数字段,字段名“学号”
MyTable.Columns.Append("学号", ADOX.DataTypeEnum.adInteger) '追加一个数字型字段
'给字段“学号”创建一个主键“PimaryKey_Field”
MyTable.Keys.Append("学号", ADOX.KeyTypeEnum.adKeyPrimary, "学号")
Mycat.Tables.Append(MyTable) '把所有的新字段追加到表
MyTable = Nothing
Mycat = Nothing
End Sub
End Class
public void CreateMDB(){
//为了方便测试,数据库名字采用比较随机的名字,以防止添加不成功时还需要重新启动IIS来删除数据库。
string time = DateTime.Now.Year.ToString()
if (DateTime.Now.Month <10)//判断当前月是否小于10
{
time += "0" + DateTime.Now.Month
}
else
{
time += DateTime.Now.Month
}
time += DateTime.Now.Day
string apppath = System.Web.HttpContext.Current.Request.ApplicationPath
string dbName = System.Web.HttpContext.Current.Server.MapPath("\\" + apppath + "\\NewMDB\\CGMDB" + time + ".mdb")
ADOX.CatalogClass cat = new ADOX.CatalogClass()
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + dbName + "")
//ADODB.Connection cn = new ADODB.Connection()
//cn.Open("Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + dbName + "", null, null, -1)
// cat.ActiveConnection = cn
ADOX.TableClass tbl = new ADOX.TableClass()
tbl.ParentCatalog = cat
tbl.Name = "WTMDBTable"
//增加一个文本字段
ADOX.ColumnClass col2 = new ADOX.ColumnClass()
col2.ParentCatalog = cat
col2.Name = "CheckSignNo"
col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col3 = new ADOX.ColumnClass()
col3.ParentCatalog = cat
col3.Name = "CarNo"
col3.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col3, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col4 = new ADOX.ColumnClass()
col4.ParentCatalog = cat
col4.Name = "CheckDate"
col4.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col4, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col5 = new ADOX.ColumnClass()
col5.ParentCatalog = cat
col5.Name = "TownClass"
col5.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col5, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col6 = new ADOX.ColumnClass()
col6.ParentCatalog = cat
col6.Name = "Address"
col6.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col6, ADOX.DataTypeEnum.adVarChar, 200)
//增加一个文本字段
ADOX.ColumnClass col7 = new ADOX.ColumnClass()
col7.ParentCatalog = cat
col7.Name = "Action"
col7.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col7, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col8 = new ADOX.ColumnClass()
col8.ParentCatalog = cat
col8.Name = "CarType"
col8.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col8, ADOX.DataTypeEnum.adVarChar, 50)
//增加一个文本字段
ADOX.ColumnClass col9 = new ADOX.ColumnClass()
col9.ParentCatalog = cat
col9.Name = "Mark"
col9.Properties["Jet OLEDB:Allow Zero Length"].Value = false
tbl.Columns.Append(col9, ADOX.DataTypeEnum.adVarChar, 50)
//设置主键
tbl.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "CheckSignNo", "", "")
cat.Tables.Append(tbl)
System.Runtime.InteropServices.Marshal.ReleaseComObject(tbl)
System.Runtime.InteropServices.Marshal.ReleaseComObject(cat)
tbl = null
cat = null
GC.WaitForPendingFinalizers()
GC.Collect()
}
以上代码可以完成创建一个MDB数据库了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)