2016-12-09 12 views
0

私は簡単なGUIベースのデータベースビューアの作成を担当しています。データベースは私たちの学校のftpサーバー上でホストされています。私たちは視覚的な基本を使用しなければなりません。ほとんどの場合、データベースを検索、表示、追加できますが、既存のレコードを編集することで問題が生じます。vb.netでのOracleデータベースのエラー

レコードを更新しようとすると、コロン(:)を使用していない場合はora-00904エラーの無効な識別子が表示され、ora-01008の変数はコロン(:)でバインドされていません。これまでのところ、sqldeveloperを実際に使用していましたが、最終的なプロジェクトとしてVisual Basicを使用するように求められましたが、このようなものは一度もカバーしていませんでした。

PS:私はその部分をコメントアウトしてエラーを表示することができます。

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click 
Dim strCustomerEmail As String = "" 
Dim strLastName As String = "" 
Dim strFirstName As String = "" 
Dim strAddress As String = "" 
Dim strCity As String = "" 
Dim strState As String = "" 
Dim intZip As Integer = 0 
Dim datDateSignedUp As Date 
Dim intCustomerNumber As Integer = 0 


Try 
    strCustomerEmail = CStr(txtCustomerEmail.Text) 
    strLastName = CStr(txtLastName.Text) 
    strFirstName = CStr(txtFirstName.Text) 
    strAddress = CStr(txtAddress.Text) 
    strCity = CStr(txtCity.Text) 
    strState = CStr(txtState.Text) 
    intZip = CInt(txtZip.Text) 
    datDateSignedUp = CDate(txtDateSignedUp.Text) 
    intCustomerNumber = CInt(txtCustomerNumber.Text) 



    Dim sql As String = "UPDATE P_CLIENTS SET CUSTOMER_EMAIL = :CUSTOMER_EMAIL, LASTNAME = :LASTNAME, FIRSTNAME = :FIRSTNAME, ADDRESS = :ADDRESS, CITY = :CITY, STATE = :STATE, ZIP = :ZIP, DATE_SIGNED_UP = :DATE_SIGNED_UP, CUSTOMER# = :CUSTOMER# WHERE CUSTOMER_EMAIL = :EDIT_CUSTOMER_EMAIL" 

    Dim cmd2 As New OracleCommand(sql, conn) 
    conn.Open() 
    cmd2.Parameters.Add("CUSTOMER_EMAIL", strCustomerEmail) 
    cmd2.Parameters.Add("LASTNAME", strLastName) 
    cmd2.Parameters.Add("FIRSTNAME", strFirstName) 
    cmd2.Parameters.Add("ADDRESS", strAddress) 
    cmd2.Parameters.Add("CITY", strCity) 
    cmd2.Parameters.Add("STATE", strState) 
    cmd2.Parameters.Add("ZIP", intZip) 
    cmd2.Parameters.Add("DATE_SIGNED_UP", datDateSignedUp) 
    cmd2.Parameters.Add("EDIT_CUSTOMER_EMAIL", strEditCustomerEmail) 
    cmd2.CommandType = CommandType.Text 
    cmd2.ExecuteNonQuery() 

    txtCustomerEmail.Text = strEditCustomerEmail 
    txtLastName.Text = "" 
    txtFirstName.Text = "" 
    txtAddress.Text = "" 
    txtCity.Text = "" 
    txtState.Text = "" 
    txtZip.Clear() 
    txtDateSignedUp.Clear() 
    txtCustomerNumber.Clear() 
    'txtCustomerEmail.Select() 

    txtCustomerEmail.Enabled = True 
    txtLastName.Enabled = True 
    txtFirstName.Enabled = True 
    txtAddress.Enabled = True 
    txtCity.Enabled = True 
    txtState.Enabled = True 
    txtZip.Enabled = True 
    txtDateSignedUp.Enabled = True 
    txtCustomerNumber.Enabled = True 



    'Catch ex As Exception 
    ' MessageBox.Show("An error occurred while attempting to add a new record.", "Error") 
Finally 
    conn.Close() 
    txtCustomerEmail.Select() 
End Try 
End Sub 
+2

コロンをパラメータコレクションに追加する際に、コロンをパラメータ名にも追加しないでください。 – Steve

+1

お客様のパラメータから顧客番号が不明ですか? – theduck

+0

聖なるものだと私は思っています....私は顧客を紛失しています。 iveは私のクラスのために数日間プロジェクトに取り組んでいます。 – killj0y

答えて

1

パラメータリストにCustomer#がありません。

関連する問題