【问题标题】:How to add data to an access database in visual studio 2012如何在 Visual Studio 2012 中将数据添加到 Access 数据库
【发布时间】:2015-04-20 11:42:25
【问题描述】:

这是我放在提交按钮后面的代码,我有两个文本框名称和电子邮件,我想将它们添加到我的数据库中,它不起作用想知道是否有人可以提供帮助

Dim Strnm As String = Request.Form("txtname")
        Dim Strem As String = Request.Form("txtemail")

        Dim objConnection As OleDbConnection = Nothing
        Dim objcmd As OleDbCommand = Nothing

        Dim StrSQL As String
        Dim dbConn As OleDbConnection = Nothing

        Dim filepath = "G:\WebSites\WebSite1\App_Data\register_log.ldf"
        dbConn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\registration.accdb")
        dbConn.Open()

        StrSQL = "insert into tblregistration (Name, E-mail) values (?,?)"
        objcmd = New OleDbCommand(StrSQL, dbConn)
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@txtname", Strnm))
        objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@txtemail", Strem))


        'close connection
        dbConn.Close()
        Response.Write("submitted successfully")

【问题讨论】:

  • 您没有执行查询:objcmd.ExecuteNonQuery()。您还应该处理连接和命令对象。 Using 块对此有好处
  • 添加带名称的参数必须在查询中具有参数名称..否则只需添加不带参数名称的参数。
  • @krish OleDB 只是将命名参数视为占位符,实际上并没有将它们用作命名参数
  • 啊酷我不知道..

标签: vb.net ms-access visual-studio-2012


【解决方案1】:

您没有执行查询。你的代码也可以用 Using 块来声明和处理东西:

Dim Strnm As String = Request.Form("txtname")
Dim Strem As String = Request.Form("txtemail")

Dim StrSQL = "insert into tblregistration (Name, E-mail) values (?,?)"

Using dbConn = New OleDbConnection(connection string...),
    objcmd = New OleDbCommand(StrSql, objConnection)

    dbConn.Open()

    objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@txtname", Strnm))
    objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@txtemail", Strem))

    objcmd.ExecuteNonQuery     ' execute the query
End Using             ' close and dispose of dbConn, objcmd


Response.Write("submitted successfully")

代码中还声明了 2 个 Connection 对象(objConnectiondbConn)。

Using 的行为类似于Dim,到目前为止,代码可以在一行代码中声明和初始化事物。但主要是它确保这些东西在块的末端被关闭和处理。该代码还使用构造函数在创建时将 SQL 和 Connection 传递给 dbConnobjCmd。它只保存一两行代码,但假设它们从创建的那一刻起就具有所需的内容。

您还可以编写使用函数来返回Connection 对象,这样您就不必在整个代码中使用连接字符串。见this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2022-11-22
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多