2014-10-23 2 views
0

Я пытаюсь создать команду обновления в VB. Я смог создать его, и ошибка не отображается.не удалось обновить базу данных в mysql с помощью VB

но когда я пытаюсь выполнить команду во время отладки, обновление, похоже, не работает. Я не получаю никаких ошибок во время выполнения, но никаких изменений в моей базе данных не происходит.

вот мой code..it немного long..sorry для этого ..

connection = New MySqlConnection 
 
     connection.ConnectionString = "Database=ngp;data source=localhost; user id= root; password=********" 
 
     Dim reader As MySqlDataReader 
 

 
     If MsgBox("Are you sure about the CHANGES you made to " & Label33.Text & " ? " & vbNewLine & "May prob pa sa result ng yesno", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then 
 
      Try 
 
       connection.Open() 
 
       Dim edit As String 
 
       edit = "update ngpmain set ID='" & TextBox21.Text & "',PENRO='" & ComboBox1.SelectedItem & "',CENRO='" & ComboBox2.SelectedItem & "',MUNICIPALITY_or_CITY='" & ComboBox3.SelectedItem & "',BARANGAY='" & TextBox1.Text & "',PROVINCE='" & TextBox2.Text & "',AREA='" & TextBox3.Text & "',SEEDS_PLANTED='" & TextBox4.Text & "',NAME_OF_ORG='" & TextBox5.Text & "',CONTACT_PERSON='" & TextBox6.Text & "',TYPE_OF_ORG='" & ComboBox4.SelectedItem & "',COMPONENT='" & ComboBox5.SelectedItem & "',COMMODITY='" & ComboBox10.SelectedItem & "',SPECIES='" & TextBox8.Text & "',YEAR='" & ComboBox6.SelectedItem & "',ZONE='" & ComboBox7.SelectedItem & "',TENURE='" & TextBox9.Text & "',NO_LOA='" & ComboBox8.SelectedItem & "',RIVER_BASIN='" & TextBox10.Text & "',WATERSHED='" & TextBox11.Text & "',REMARKS='" & TextBox12.Text & "',sid='" & TextBox13.Text & "',sid2='" & TextBox14.Text & "',YR_CD='" & TextBox15.Text & "', PSGC_CD='" & TextBox16.Text & "',SITE_ID='" & TextBox17.Text & "',AREA_CD='" & TextBox18.Text & "', MALE_PLANTER='" & TextBox19.Text & "',FEMALE_PLANTER='" & TextBox20.Text & "',TOTAL_PLANTERS='" & Label31.Text & "',UNIQUE_ID='" & Label33.Text & "',DISTRICT='" & ComboBox9.SelectedItem & "' where UNIQUE_ID='" & Label33.Text & "' " 
 
       command = New MySqlCommand(edit, connection) 
 
       reader = command.ExecuteReader 
 
       
 
       MsgBox("Changes were successfully applied.", MsgBoxStyle.Information) 
 
       Me.Show() 
 
       
 
      Catch ex As Exception 
 
       MsgBox(ex.Message) 
 
      Finally 
 
       connection.Dispose() 
 
      End Try 
 

 
     Else 
 
      MsgBox("No changes have been made.", MsgBoxStyle.Information) 
 
      Me.Show() 
 
     End If

вот мой новый код

Using connection As New MySqlConnection("Database=ngp;data source=localhost; user id= root; password=admin") 
 
       Using edit As New MySqlCommand 
 
        With edit 
 
         .Connection = connection 
 
         'ID='" & TextBox21.Text & "', UNIQUE_ID='" & Label33.Text & "',sid='" & TextBox13.Text & "',sid2='" & TextBox14.Text & "',SITE_ID='" & TextBox17.Text & "',AREA_CD='" & TextBox18.Text & "', 
 
         .CommandText = "update ngpmain set PENRO='" & ComboBox1.SelectedItem & "',CENRO='" & ComboBox2.SelectedItem & "',MUNICIPALITY_or_CITY='" & ComboBox3.SelectedItem & "',BARANGAY='" & TextBox1.Text & "',PROVINCE='" & TextBox2.Text & "',AREA='" & TextBox3.Text & "',SEEDS_PLANTED='" & TextBox4.Text & "',NAME_OF_ORG='" & TextBox5.Text & "',CONTACT_PERSON='" & TextBox6.Text & "',TYPE_OF_ORG='" & ComboBox4.SelectedItem & "',COMPONENT='" & ComboBox5.SelectedItem & "',COMMODITY='" & ComboBox10.SelectedItem & "',SPECIES='" & TextBox8.Text & "',YEAR='" & ComboBox6.SelectedItem & "',ZONE='" & ComboBox7.SelectedItem & "',TENURE='" & TextBox9.Text & "',NO_LOA='" & ComboBox8.SelectedItem & "',RIVER_BASIN='" & TextBox10.Text & "',WATERSHED='" & TextBox11.Text & "',REMARKS='" & TextBox12.Text & "',YR_CD='" & TextBox15.Text & "',PSGC_CD='" & TextBox16.Text & "',MALE_PLANTER='" & TextBox19.Text & "',FEMALE_PLANTER='" & TextBox20.Text & "',TOTAL_PLANTERS='" & Label31.Text & "',DISTRICT='" & ComboBox9.SelectedItem & "'" 
 
         .CommandType = CommandType.Text 
 
         .Parameters.AddWithValue("UNIQUE_ID", Label33.Text) 
 
        End With 
 
        Try 
 
         connection.Open() 
 
         edit.ExecuteNonQuery() 
 
         MsgBox("Changes were successfully applied.", MsgBoxStyle.Information) 
 
         Me.Show() 
 
        Catch ex As Exception 
 
         MsgBox(ex.Message) 
 

 
        End Try 
 
       End Using 
 
      End Using

+0

Вы должны использовать параметризованные запросы для предотвращения атак SQL-инъекции. – Donal

+0

@donal любая идея о том, как это сделать с моим кодом? .thanks – mrkdenz

+0

Проблема, с которой вы сталкиваетесь, заключается в том, что вы должны использовать ExecuteNonQuery вместо ExecuteReader. Параметрированные запросы предназначены для наилучшей практики. – Donal

ответ

0

После немного повторного написание обновление заявление я заметил, что вы, возможно, отсутствует имя столбца, который будет вызывать обновление на провал:

Это происходит сразу после года

edit = 
    "update ngpmain 
    set ID='" & TextBox21.Text & "' 
    ,PENRO='" & ComboBox1.SelectedItem & "' 
    ,CENRO='" & ComboBox2.SelectedItem & "' 
    ,MUNICIPALITY_or_CITY='" & ComboBox3.SelectedItem & "' 
    ,BARANGAY='" & TextBox1.Text & "' 
    ,PROVINCE='" & TextBox2.Text & "' 
    ,AREA='" & TextBox3.Text & "' 
    ,SEEDS_PLANTED='" & TextBox4.Text & "' 
    ,NAME_OF_ORG='" & TextBox5.Text & "' 
    ,CONTACT_PERSON='" & TextBox6.Text & "' 
    ,TYPE_OF_ORG='" & ComboBox4.SelectedItem & "' 
    ,COMPONENT='" & ComboBox5.SelectedItem & "' 
    ,COMMODITY='" & ComboBox10.SelectedItem & "' 
    ,SPECIES='" & TextBox8.Text & "' 
    ,YEAR='" & ComboBox6.SelectedItem & "' 
    ,='" & ComboBox7.SelectedItem & "' <--- missing column name?!! 
    ,TENURE='" & TextBox9.Text & "' 
    ,NO_LOA='" & ComboBox8.SelectedItem & "' 
    ,RIVER_BASIN='" & TextBox10.Text & "' 
    ,WATERSHED='" & TextBox11.Text & "' 
    ,REMARKS='" & TextBox12.Text & "' 
    ,sid='" & TextBox13.Text & "' 
    ,sid2='" & TextBox14.Text & "' 
    ,YR_CD='" & TextBox15.Text & "' 
    , PSGC_CD='" & TextBox16.Text & "' 
    ,SITE_ID='" & TextBox17.Text & "' 
    ,AREA_CD='" & TextBox18.Text & "' 
    , MALE_PLANTER='" & TextBox19.Text & "' 
    ,FEMALE_PLANTER='" & TextBox20.Text & "' 
    ,TOTAL_PLANTERS='" & Label31.Text & "' 
    ,UNIQUE_ID='" & Label33.Text & "' 
    ,DISTRICT='" & ComboBox9.SelectedItem & "' 
    where UNIQUE_ID='" & Label33.Text & "' " 
+0

Извините, я, должно быть, случайно удалил его во время публикации .. но у меня это есть в моей программе .. мне переписать код .. – mrkdenz

Смежные вопросы