2014-06-23 3 views
0

메신저 소프트웨어를 사용하여 도서관, 책 재고, 책을 가져 오는 독자 및 책꽂이 ... 책 담보 대출을 등록하는 양식에서 오류가 계속 발생합니다. System.InvalidCastException이 처리되지 않았습니다. HResult = -2147467262 메시지가 Levantamento 값에 삽입됩니다 (연산자 "&"은 문자열에 정의되어 있지 않습니다. . 다음 형식 데이터 행보기를 말합니다DataGridview에서 데이터를 가져 와서 다른 테이블에 추가하기

이것은 데이터 그램보기에서 텍스트 상자로 데이터를 가져 오는 코드입니다

Dim s As String = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value 
    'command to bring data where itemid matches with the selected cell row itemid 
    Dim cmd As New SqlCommand("SELECT Livro.ID_livro, Livro.Titulo, Autor.Autor, [Tipo de livro].tipodelivro, Livro.[data de ediçao], Livro.Quantidade FROM Livro INNER JOIN Autor ON Livro.ID_autor = Autor.ID_autor INNER JOIN [Tipo de livro] ON Livro.ID_tipodelivro = [Tipo de livro].ID_tipodelivro WHERE Livro.ID_livro =" + s + "", con) 
    Dim ds As New DataSet() 
    Dim da As New SqlDataAdapter(cmd) 
    ds.Clear() 
    da.Fill(ds) 
    TextBox1.Text = ds.Tables(0).Rows(0)("Titulo").ToString() 
    TextBox2.Text = ds.Tables(0).Rows(0)("Quantidade").ToString() 

이 코드는 의도 한 데이터베이스에 데이터를 삽입하는 데 사용하는 코드로, 먼저 모든 필드를 삽입합니다 (그 중 2 개는 날짜이지만 데이터베이스의 varchar 인 경우 ... 일부 필드는 의도 한 테이블은 ID입니다 ...하지만 시각적으로 나는 텍스트를 봅니다 ... mayb는 그것입니다?

Dim sql As String = "insert into Levantamento values('" & TextBox1.Text & "','" & ComboBox1.SelectedValue & "','" & TextBox4.Text & "','" & TextBox5.Text & "')" 
     Dim sqlcom As New SqlCommand(sql, con) 
     Dim dr As SqlDataReader = sqlcom.ExecuteReader() 
     Dim temp2 As Double = TextBox2.Text 
     Dim temp3 As Double = temp2 - temp3 
     TextBox3.Text += temp3 
     Dim sqlstr4 As String = "update livro set Quantidade='" & TextBox3.Text & "' where Titulo = '" & TextBox1.Text & "'" 
     comando = New SqlClient.SqlCommand(sqlstr4, con) 
     comando.ExecuteNonQuery() 
+0

코드에 여러 가지 문제가 있습니다. Option Strict를 On으로 설정하면 컴파일 타임에 일부를 catch합니다. 또한 문자열 연결을 사용하여 SQL 코드에 값을 삽입하고 적절한 방법으로 시작하고 매개 변수를 사용하는 것을 중지해야합니다. 왜, 어떻게하는지 여기에서 읽어보십시오 : http://jmcilhinney.blogspot.com.au/2009/08/using-parameters-in-adonet.html – jmcilhinney

+0

나는 그 문제를 해결할 수있는 방법을 여전히 이해할 수 없습니다. 다른 방법으로 데이터베이스에 삽입 ...하지만 내 문제는 동일하게 유지됩니다 ... 코드의 오류는 어디에서 ... 그리고 왜 발생합니까? – user3712639

+0

그 링크는 아마 당신의 문제를 해결하지 못할 것입니다. 그래서 저는 그것을 주석이 아닌 대답에 넣었습니다. 답변 섹션에서 문제를 해결하는 해답을 제시했습니다. 그것이이 사이트가 작동하는 방식입니다. 정보가 질문에 대한 대답을 제시하면 대답으로 제공되어야하고, 추가 정보 나 설명에 대한 요청은 의견으로 제공되어야합니다. 사람들은 항상 옳은 일을하는 것은 아니며 때로는 회색 영역이 있지만 그것이 작동해야하는 방법입니다. – jmcilhinney

답변

0

제 생각에 문제는 ComboBox1.SelectedValue입니다. DataTableComboBox에 바인딩했으나 ValueMember을 설정하지 않았습니까?

관련 문제