2014-02-07 4 views
-2

У меня возникла проблема с моей командой delete. Нет ошибок, но когда я бегу, запрос говорит:Удалить запись в vb.net

Конверсия удалось при преобразовании значения VARCHAR «System.Data.Linq.SqlClient.SqlProvider + SingleResult`1 [WindowsApplication1.StoredProcedure3Result]» к типу данных междунар. *

Это мой код:

Dim conn As New SqlConnection(
    "server=IAI-004;uid=admin;pwd=intelassist;database=payroll") 
Dim cmd As SqlCommand = conn.CreateCommand 
conn.Open() 

cmd.CommandText = "DELETE FROM employee_info WHERE employee_id ='" & 
        DataGridView1.DataSource.ToString & "'" 
cmd.ExecuteNonQuery() 

conn.Close() 

Я думаю, что проблема:

employee_id ='" & DataGridView1.DataSource.ToString & "'" 

который представляет собой строку. И мой тип данных employee_id - Integer.

Нужно ли его преобразовать? Если нет, то каково возможное решение для этого?

+0

Если EmpID отображается в сетке, передайте это как параметр SQL. вы передаете источник данных как идентификатор, который является неправильным. – Plutonix

ответ

0

Вынимают одиночные кавычки:

Кроме того, DataGridView1.DataSource.ToString не собирается получить вам EMPLOYEE_ID

cmd.CommandText = "DELETE FROM employee_info WHERE employee_id =" & DataGridView1.DataSource.ToString 
+0

не собираюсь получать? так что вы имеете в виду, что это неправильно? есть ли у вас какие-либо идеи, чтобы получить emp_id PLS? – jepoy

0

Объявите конкретную строку, то цикл для удаления запроса.

Dim Emp_ID As String 
    For i As Integer = 0 To DataGridView1.Rows.Count - 1 
    Emp_ID = DataGridView1.Rows(i).Cells(0).Value() 


    query = "DELETE FROM employee_info WHERE employee_id = '" + Emp_ID + "'" 


      mysql_connect(True) 
      cmd = New MySqlCommand(query, SQLConnection) 
      cmd.Connection = SQLConnection 
      cmd.CommandText = query 
      cmd.ExecuteNonQuery() 


Next 
    MsgBox("Deleted") 
Смежные вопросы