在运行时第一次创建SQL Server数据库

时间:2014-07-30 08:34:01

标签: sql-server vb.net sql-server-2008 visual-studio-2013 vb.net-2010

我想在运行时在我的vb.net项目中创建一个SQL Server数据库。我知道如何实际编码数据库,但我想知道我应该在哪里实际放置代码?我应该将代码放在启动表单中还是应该自己进入一个类?此外,该项目将在特定站点上运行多个pc,因此我只希望在项目第一次激活时创建数据库,然后才能在不同的PC上查询数据库。我该怎么做呢?对此事的所有帮助将不胜感激。

编辑:

好的,所以我应该更清楚这一点。该项目将在2个不同的PC上,它适用于进入企业的访客。电脑将处于接收和安全状态。我需要两个pc访问相同的数据库,其中包含相同的详细信息。我不希望有两个不同的数据库,其中的细节必须放两次。例如,如果我今天进入接待处然后明天通过安检,那么我应该进入安检的原因是为什么我再次进入这个行业,我不应该再次提供我的详细信息。我该怎么做?正如我已经说过的,我知道如何编写数据库代码,但我想知道如何做我在问题中所说的内容。

提前感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

如果您在模块或表单加载中添加代码,那么它将在表单加载时一直执行。浪费时间在每次运行中检查数据库是否存在。因此,最好为此目的(或菜单项)放置一个带有文本“创建数据库”的按钮。它的click事件将加载数据库。以下代码可用于在按钮单击

上动态创建数据库
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'creating and initializing the connection string
        Dim myConnectionString As SqlConnection = New SqlConnection("Data Source=(local)\SQLEXPRESS;Initial Catalog=master;Integrated Security=True;Pooling=False")
        'since we need to create a new database set the Initial Catalog as Master
        'Which means we are creating database under master DB
        Dim myCommand As String //to store the sql command to be executed
        myCommand = "CREATE database my_db" //the command that creates new database
        Dim cmd As SqlCommand = New SqlCommand(myCommand, myConnectionString) // creating command for execution
        Try
            cmd.Connection.Open() //open a connection with cmd
            cmd.ExecuteNonQuery() //Execute the query
            cmd.Connection.Close() //Close the connection
        Catch
            MsgBox(" Already installed database", MsgBoxStyle.Critical, " MaS InfoTech- Warning")
        End Try
        'Creating table to the dynamicaly created database
        Try
            Dim cn As SqlConnection = New SqlConnection("Data Source=(local)\SQLEXPRESS;Initial Catalog=my_db;Integrated Security=True;Pooling=False")
          'here the connection string is initialized with Initial Catalog as my_db
            Dim sql As String //sql query string
            sql = "CREATE TABLE customer(cus_name varchar(50) NULL,address varchar(50) NULL,mobno numeric(18, 0) NULL,tin varchar(50) NULL,kg varchar(50) NULL)"
            cmd = New SqlCommand(sql, cn) // create command with connection and query string 
            cmd.Connection.Open()
            cmd.ExecuteNonQuery()
            cmd.Connection.Close()
          Catch
           MsgBox(" Already existing table", MsgBoxStyle.Critical, " MaS InfoTech- Warning")
          End Try
    End Sub