您的位置:首页 > 编程语言 > VB

项目实战(四)—VB.NET动态创建表

2013-12-18 22:12 453 查看
从接触数据库到现在,我们数据库中的表一般是静态的的。做项目的时候也是根据业务的需求把每个表都建立完整了,才开始开发。而并非所有的表都是静态的,现在我们开发时就遇到这样的一个问题,我们需要根据用户对现实粮仓的布局在数据库中动态建表。

一、问题

系统的一些表必须在本系统在实际运行过程中生成。

二、途径

在系统中动态创建这些表,依据具体的情况,将每个仓建立一张这样的表。

三、项目实例

1、简单例子

<span style="font-size:18px;">Declare @SQL VarChar(1000)                                                      '定义查询变量

SELECT @SQL = 'Create Table ' + @TableName + '('
SELECT @SQL = @SQL + 'ID int NOT NULL Primary Key, FieldName VarChar(10))'      '拼接字符串

Exec (@SQL)                                                                     '执行字符串
</span>


2、项目实例

传入参数为表名

<span style="font-size:14px;">    Public Function CreateStorageHumi(intStorage As Integer) As Boolean Implements ICreateStorageHumi.CreateStorageHumi
           
         '拼接表名
         Dim tableName As String     
      
         '定义创建表时使用的参数                                                                                                      
         Dim sqlparam(0 To 1) As SqlParameter    

        '创建温度测量表的SQL语句
         Dim strCreate As String = "exec('create table '+@storageNumber+' '+@string)"       

        'StorageHumi为表名前半部分,intStorage为每个仓的仓号
        tableName = "StorageHumi" & intStorage                       

        '传递表名参数
        sqlparam(0) = New SqlParameter("@storageNumber", tableName)                                             

        '插入表中字段
        sqlparam(1) = New SqlParameter("@string", "(dectDate date not null,dectTime datetime not null,inTemp  varchar(5) not null)")                                                                                                                                                                 
  
        '执行创建语句,创建该数据库
        sqlHelper.UpdDelAlter(strCreate, CommandType.Text, sqlparam)        
                                    
        Return True

    End Function</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: