vb.net 在 vb .net、VS 2008 中使用 oledb 在 oracle 数据库中插入值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13122243/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 10:56:28  来源:igfitidea点击:

Inserting values in a oracle databse using oledb in vb .net, VS 2008

vb.netoledbconnection

提问by Nitishok

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim insertOk As Boolean = True
        Dim con1 As OleDb.OleDbConnection
        Dim cmd As OleDb.OleDbCommand
        Dim query As String
        Dim temp As Integer
        con1 = New OleDb.OleDbConnection("Provider=MSDAORA.1;Data Source=localhost;Persist Security Info=True;Password=sys;User ID=nitishok")

        con1.Open()

        query = "insert into APPLICANTS(APPLICANT_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,SEX,F_H,TOWN,TALUKA,DISTRICT,LANDLINE,MOBILE,BLOOD_GROUP,EDU,DOB) values(:aid,:fn,:mn,:ln,:s,:fh,:tw,:tl,:ds,:land,:mob,:bg,:edu,:dob)"

        cmd = New OleDb.OleDbCommand(query, con1)

        cmd.Parameters.Add(":aid", OleDb.OleDbType.VarChar).Value = TextBox7.Text
        cmd.Parameters.Add(":fn", OleDb.OleDbType.LongVarChar).Value = TextBox1.Text
        cmd.Parameters.Add(":mn", OleDb.OleDbType.LongVarChar).Value = TextBox12.Text
        cmd.Parameters.Add(":ln", OleDb.OleDbType.LongVarChar).Value = TextBox11.Text
        cmd.Parameters.Add(":s", OleDb.OleDbType.LongVarChar).Value = ComboBox1.Text
        cmd.Parameters.Add(":fh", OleDb.OleDbType.LongVarChar).Value = TextBox2.Text
        cmd.Parameters.Add(":tw", OleDb.OleDbType.LongVarChar).Value = TextBox10.Text
        cmd.Parameters.Add(":tl", OleDb.OleDbType.LongVarChar).Value = TextBox8.Text
        cmd.Parameters.Add(":ds", OleDb.OleDbType.LongVarChar).Value = TextBox9.Text
        cmd.Parameters.Add(":land", OleDb.OleDbType.LongVarChar).Value = TextBox5.Text
        cmd.Parameters.Add(":mob", OleDb.OleDbType.LongVarChar).Value = TextBox6.Text
        cmd.Parameters.Add(":bg", OleDb.OleDbType.LongVarChar).Value = ComboBox2.Text
        cmd.Parameters.Add(":edu", OleDb.OleDbType.LongVarChar).Value = TextBox4.Text

        cmd.Parameters.Add(":dob", OleDb.OleDbType.Date).Value = DateTimePicker1.Value

        cmd.CommandType = CommandType.Text
        temp = cmd.ExecuteNonQuery()


        If temp > 0 Then
            MessageBox.Show("Record Added!")
        Else
            MessageBox.Show("Record Not Added!")
        End If

        con1.Close()
    End Sub

im totally new with vb .net. im doing a simple project for my term work.

我对 vb .net 完全陌生。我正在为我的学期工作做一个简单的项目。

please explain to me how to insert values.

请向我解释如何插入值。

im getting this errer ORA-01008: not all variables bound....

我得到这个错误 ORA-01008: 并非所有变量都绑定....

im using vb.net VS 2008 oracle database oledb connection

我使用 vb.net VS 2008 oracle 数据库 oledb 连接

采纳答案by adatapost

Use question (?) placeholder instead of named parameters because you're using System.Data.OleDb. I'd suggest to download ODP.NET - Oracle Data Provider for .NET.

使用问题 (?) 占位符而不是命名参数,因为您使用的是System.Data.OleDb. 我建议下载 ODP.NET - Oracle Data Provider for .NET

For instance,

例如,

query = "insert into APPLICANTS(APPLICANT_ID,FIRST_NAME) values(?,?)"
cmd.Parameters.Add("?", OleDb.OleDbType.VarChar,30).Value = TextBox7.Text
cmd.Parameters.Add("?", OleDb.OleDbType.LongVarChar,40).Value = TextBox1.Text
....