将数据插入oleDb表 [英] Insert data into oleDb table

查看:118
本文介绍了将数据插入oleDb表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理我的第一个数据库程序,我无法在访问数据库内更新数据。以下是winform上添加条件按钮的代码。

  Dim TaxConnStr As String =Provider = Microsoft.ACE .OLEDB.12.0; Data Source =& Configuration Manager.AppSettings(Database)
Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr)
Dim dt As New DataTable
Dim da As New OleDbDataAdapter

Try
dbConnection.Open()

Dim cmd As New OleDbCommand
cmd.CommandText =INSERT INTO UserCriteria(UserName,State,County,Type,Amount,Rank)VALUES(@UserName ,@State,@County,@Type,@Amount,@Rank)
Me.DataGridView1.DataSource = dt
cmd.ExecuteNonQuery()

dt.Columns.Add (UserName)
dt.Columns.Add(State)
dt.Columns.Add(County)
dt.Columns.Add(Type)
dt.Columns.Add(Amount)
dt.Columns.Add(Rank)
dt.Rows.Add(New String(){
boxAssignTo.Text,_
boxState.Text,_
boxCounty.Text,_
boxAmount.Text,_
boxType.Text,_
boxRank.Text})





Catch ex As Exception
最后
dbConnection.Close()
结束尝试

我知道我错过了一些东西或做错了,所以我要求你的大师的指导。


b

  Dim TaxConnStr As String =Provider = Microsoft.ACE.OLEDB.12.0; Data Source =& _ 
ConfigurationManager.AppSettings(Database)
使用dbConnection = New OleDbConnection(TaxConnStr)
Dim dt As New DataTable
Dim da As New OleDbDataAdapter
Try
dbConnection.Open()
Dim cmd As New OleDbCommand
cmd.CommandText =INSERT INTO UserCriteria(UserName,State,County,& _
Type,Amount,Rank) VALUES& _
(@UserName,@State,@County,@Type,@Amount,@Rank)
cmd.Parameters.AddWithValue(@ UserName,boxAssignTo.Text)
cmd .Parameters.AddWithValue(@ State,boxState.Text)
cmd.Parameters.AddWithValue(@ County,boxCounty.Text)
cmd.Parameters.AddWithValue(@ Type,boxType。 Text)
cmd.Parameters.AddWithValue(@ Amount,boxAmount.Text)
cmd.Parameters.AddWithValue(@ Rank,boxRank.Text)
cmd.ExecuteNonQuery()
Catch ex As Exception
最后
dbConnection.Close()
结束尝试
结束使用

您可以看到,在数据库表中添加记录,您使用带有命令文本的OleDbCommand,并将其参数设置为数据库表中预期的值。

还有列的数据类型的问题。从您的示例中,不可能推断数据类型,但可能Type,Rank和Amount是数字列,因此您需要将textbox值转换为适当的数字(Convert.ToInt32(textbox.text))


I'm working on my first database program and I am having trouble having the data be updated inside the access database. Here is the code for the 'add criteria' button on the winform.

 Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database")
    Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr)
    Dim dt As New DataTable
    Dim da As New OleDbDataAdapter

    Try
        dbConnection.Open()

        Dim cmd As New OleDbCommand
        cmd.CommandText = "INSERT INTO UserCriteria ( UserName, State, County, Type, Amount, Rank) VALUES ( @UserName, @State, @County, @Type, @Amount, @Rank)"
        Me.DataGridView1.DataSource = dt
        cmd.ExecuteNonQuery()

        dt.Columns.Add("UserName")
        dt.Columns.Add("State")
        dt.Columns.Add("County")
        dt.Columns.Add("Type")
        dt.Columns.Add("Amount")
        dt.Columns.Add("Rank")
        dt.Rows.Add(New String() {
                                            boxAssignTo.Text, _
                                            boxState.Text, _
                                            boxCounty.Text, _
                                            boxAmount.Text, _
                                            boxType.Text, _
                                            boxRank.Text})





    Catch ex As Exception
    Finally
        dbConnection.Close()
    End Try

I know i'm missing something or doing it wrong, So i am asking for you guru's guidance.

解决方案

Something is very wrong in your code.

Try with this

Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
                            ConfigurationManager.AppSettings("Database")
Using dbConnection = New OleDbConnection(TaxConnStr)
    Dim dt As New DataTable
    Dim da As New OleDbDataAdapter
    Try
        dbConnection.Open()
        Dim cmd As New OleDbCommand
        cmd.CommandText = "INSERT INTO UserCriteria ( UserName, State, County, " & _
                          "Type, Amount, Rank) VALUES " & _
                          "(@UserName, @State, @County, @Type, @Amount, @Rank)"
       cmd.Parameters.AddWithValue("@UserName", boxAssignTo.Text)
       cmd.Parameters.AddWithValue("@State", boxState.Text)
       cmd.Parameters.AddWithValue("@County", boxCounty.Text)
       cmd.Parameters.AddWithValue("@Type", boxType.Text)
       cmd.Parameters.AddWithValue("@Amount", boxAmount.Text)
       cmd.Parameters.AddWithValue("@Rank", boxRank.Text)
       cmd.ExecuteNonQuery()
   Catch ex As Exception
   Finally
       dbConnection.Close()
   End Try
End Using

As you can see to add a record inside a database table you use a OleDbCommand with a command text and set its parameters to the values expected in the database table.
There is also the problem of the datatype of your columns. From your example it is not possible to infer the datatype, but probably Type, Rank and Amount are numeric columns and so you need to convert the textbox value to an appropriate number (Convert.ToInt32(textbox.text))

这篇关于将数据插入oleDb表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆