Pessoal, estou desenvolvendo um programa para pesquisar e cadastrar Alunos, Professores, Notas e Pagamentos.
Desenvolvi o banco de dados em SQL e estou usando o VB.NET para programar.
Tenho uma tabela criada de nome codigoProfessores cujo tipo é
char(8) ou seja uma string de 8 caracteres alfa numericos
Segue descrição da tabela em SQL
create table tblProfessor -- Cria a tabela "professor"
(codigoProfessor char(8) not null,
nomeProfessor varchar(50) not null,
enderecoProfessor varchar(80) not null,
rgProfessor varchar(20) not null,
cpfProfessor char(11) not null,
primary key (codigoProfessor))
Em seguida a tabela é populada da seguinte forma:
insert into tblProfessor (codigoProfessor, nomeProfessor, enderecoProfessor, rgProfessor, cpfProfessor) values ('ABWEB01','ABELARDO BARBOSA','AV PRINCIPE DE GALES, 55 - JD NITEROI - CEP 05869800','33132989-0','91973465912')
Até ai tudo bem, em seguida o banco de dados é importado para o VB.NET foram feitas algumas queryes etc...
Existe um botao para pesquisar e outro para cadastrar.
A pesquisa ja esta corretamente implementada numa ListBox
Quando o usuário seleciona o nome do professor na ListBox e clica no botao CadastrarProfessor, existe uma Private Sub que faz essa verificação de seleção e em seguida deve dar o display do conteudo do campo em caixas de
texto da parte de cadastro.
Segue codigo da rotina para display nas textbox
Private Sub carregaProfessores(ByVal codigoProfessor As String) 'PARTE DE BANCO DE DADOS
Dim strConn As String = My.Settings.escola_dbConnectionString.ToString()
Dim strSQL As String = "Select * from tblProfessor Where codigoProfessor = " & codigoProfessor
Dim dr As SqlDataReader
'define objeto connection e command
Dim con As New SqlConnection(strConn)
Dim cmd As New SqlCommand(strSQL, con)
Try
con.Open()
dr = cmd.ExecuteReader
If (dr.HasRows) Then
dr.Read()
TextBoxNomeProfessorCadastro.Text = dr("nomeProfessor").ToString
TextBoxEnderecoProfessorCadastro.Text = dr("enderecoProfessor").ToString
TextBoxRgProfessorCadastro.Text = dr("rgProfessor").ToString
TextBoxCpfProfessorCadastro.Text = dr("cpfProfessor").ToString
TextBoxCodigoProfessorCadastro.Text = dr("codigoProfessor").ToString
End If
'Catch ex As Exception
'MsgBox("Erro ao obter dados dos clientes. Erro : " & ex.Message)
Finally
con.Close()
End Try
End Sub
Em seguida existe o codigo do botão, que faz a chamada dessa rotina
Private Sub ButtonCadastrarProfessor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCadastrarProfessor.Click
TabControlProfessores.SelectedTab = TabCadastrarProfessor
If (ListBoxProfessores.SelectedValue.ToString() <> "System.Data.DataRowView") Then
carregaProfessores(Me.ListBoxProfessores.SelectedValue)
End If
End Sub
Acontece que o display não está sendo dado nas caixas de texto.
Esta ocorrendo o seguinte erro:
dr = cmd.ExecuteReader (TRAVA AQUI)
E A MENSAGEM DE ERRO EXIBIDA É
Invalid column name 'ABWEB01'.
OBS: Esse valor ABWEB01 é o codigo do professor em questão.
Mas se ja esta definido como string, por que não consegue dar o display corretamente?
Porque fica dando esse erro de coluna invalida?
Muito obrigado.
Att
Rodrigo Morelli
Segue codigo do botão