VB.NET中如何用SQL语句建表(复制表)?谢谢了!

VB.NET中如何用SQL语句建表(复制表)?谢谢了!,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

在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 ADOX

Public 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数据库了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10828503.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存