2014-02-09 2 views
0
Private Sub BtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDelete.Click 
     Dim cash As Integer 
     Dim result As String 
     Try 
      With com 
       .Connection = con 
       .CommandText = "DELETE cash_advance [email protected]_advance FROM employees_records " & _ 
       "WHERE id_no= '" & TextBox1.Text & "'" 
       result = com.ExecuteNonQuery 
       If result = 0 Then 
        com.Parameters.Remove(New MySql.Data.MySqlClient.MySqlParameter("cash_advance", cash)) 
       Else 
        MsgBox("Deleted") 

       End If 
      End With 

Я хочу удалить только одно поле из моего стола.Как удалить данные из полей

+0

Вы хотите удалить строки, где 'cash_advance = @ cash_advance'? – Fabio

+0

Удалите 'try ..catch' вокруг вашего кода - и вы получите сообщение об ошибке с неправильным. У вас есть «попытка», и я предполагаю, что ваша 'catch' часть пуста - вот почему вы не получаете ошибку .... – Fabio

ответ

1

Вы не можете удалить поле , вы можете удалять только строки.

Если вы хотите пустой поле его значения, вы должны установить его в ноль, пустую строку или NULL в зависимости от его типа, что-то вроде:

update employees_records set cash_advance = 0 where id_no = 42 

Это установит cash_advance поле обратно к нулю, исходя из предположения, что это значение в долларах. Если это предположение неверно, просто измените значение, на которое вы его устанавливаете.


Есть еще несколько вещей, которые вы можете сделать, чтобы помочь в изоляции этих проблем.

  1. Распечатайте (или иным образом зарегистрируйте) командную строку, прежде чем пытаться ее выполнить. Значительное число раз, это из-за плохо сформированного запроса или изворотливого предложения where.

  2. Выполните то, что точный тот же запрос из самой базы данных, а не из вашего кода.

  3. Убедитесь, что если вы используете исключения, вы регистрируете факт - иногда проблема заключается в конструкции try { ... } catch {}.

+0

Я уже пробовал ваше предложение, но это не сработало .... , пожалуйста, помогите мне: C –

+0

@ Крис, «это не сработало» на самом деле не очень полезный отчет о проблеме :-) Как он не работал? Не обновил? Обновлено до неправильного значения? Сбой программы? Обновление - это правильный способ изменить поле, поэтому, если это не сработает, первое, что я подозреваю, это то, что вы не совсем правы. – paxdiablo

+0

это не обновлялись наличном ADVANCE еще есть С ком .Connection = мошенника .CommandText = "UPDATE SET employees_records cash_advance = 0" & _ "ГДЕ id_no = '" & TextBox1.Text & "'" результат = com.ExecuteNonQuery Если результат = 0 Тогда com.Parameters.Add (Новый MySql.Data.MySqlClient.MySqlParameter ("cash_advance", наличные деньги)) Else MsgBox ("УДАЛИТЬ") –

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