Inquiridor
Incluir registo em duas tabelas no momento de gravar

Pergunta
-
Olá pessoal.
Precisava da vossa
ajuda para resolver o meu erro. Estou a criar uma
aplicação em asp.net com ligação a base dados access.
Tenho um formulario
que é preenchido pelo utilizador.
Formulário de "cliente".
Este
formulário que é carregado na base dados tem de estar associado a um utilizador
e para isso eu criei outra tabela com o seguinte codigo
Protected Sub
Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button2.Click
Try
Dim cod_cliente As String
Button1.Enabled =
False
Button2.Enabled = True
Dim connectionstring =
System.Configuration.ConfigurationManager.AppSetti ngs("accessConn")
Dim
connection As New Data.OleDb.OleDbConnection(connectionstring)
Dim
myInsertQuery As String = "insert into
cliente([PKIDnif],[Nome],[Morada],[Localidade],[Codigo_Postal],[Pessoa_Contato],[Telefone])
values('" & TextBox1.Text & "','" & TextBox2.Text & "','" &
TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text
& "','" & TextBox6.Text & "','" & TextBox7.Text &
"')"
Dim mycommand As New
Data.OleDb.OleDbCommand(myInsertQuery)
mycommand.Connection =
connection
connection.Open()
Dim rs As Data.OleDb.OleDbDataReader
= mycommand.ExecuteReader
connection.Close()
Dim qry3 As String =
"select [PKIDnif] from cliente where [PKIDnif] ='" & TextBox1.Text &
"'"
Dim mycommand3 As New Data.OleDb.OleDbCommand(qry3)
Dim
myconnection3 As New
Data.OleDb.OleDbConnection(connectionstring)
mycommand3.Connection =
myconnection3
myconnection3.Open()
Dim rs3 As
Data.OleDb.OleDbDataReader = mycommand3.ExecuteReader
If rs3.Read()
Then
cod_cliente = rs3("PKIDnif")
End
If
myconnection3.Close()
Dim qry2 As String = "insert into
sfidclientes (FKIDnif,sfid) values('" & cod_cliente & "', 1, "
')"
Dim mycommand2 As New Data.OleDb.OleDbCommand(qry2)
Dim
myconnection2 As New
Data.OleDb.OleDbConnection(connectionstring)
mycommand2.Connection =
myconnection2
myconnection2.Open()
Dim rs2 As
Data.OleDb.OleDbDataReader =
mycommand2.ExecuteReader
myconnection2.Close()
Label19.Text =
"Cliente criado com sucesso."
TextBox1.Text = ""
TextBox2.Text =
""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text =
""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text =
""
TextBox1.Enabled = False
TextBox2.Enabled =
False
TextBox3.Enabled = False
TextBox4.Enabled =
False
TextBox5.Enabled = False
TextBox6.Enabled =
False
TextBox7.Enabled = False
TextBox8.Enabled =
False
Button1.Enabled = True
Button2.Enabled = False
Catch ex
As Exception
Label19.Text = "Erro a criar Cliente." &
ex.Message
End Try
End Sub
End Class
Podem ajudar-me?
Todas as Respostas
-
-
O que eu pretendia era o seguinte:
Tendo duas tabelas: "Cliente e sfidclientes"
A tabela cliente, está associada a um utilizador, identificado na tabela sfidclientes
O utilizador pode ter 1 ou mais clientes
E o que eu pretendo é, quando o utilizador faz o respectivo login e quando cria um novo cliente, que esse cliente ao ser criado seja também registado na tabela sfidclientes o PKIDnif do cliente associado ao codigo do utilizadors, neste caso "sfid"
Limpnado o resto do código e ficando só isto, ele dá erro. Logo verifico que o problema comessa por estar na qry3, pois sem as restantes ele regista na tabela cliente.
A qry2 será então para gravar na tabela sfidclientes o PKIDnif inserido naquele momento e o "sfid" do utilizador ativo que também não sei como indicar
Protected Sub
Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) HandlesButton2.Click
Try
Dim cod_cliente As String
Button1.Enabled = False
Button2.Enabled = True
Dim connectionstring = System.Configuration.ConfigurationManager.AppSetti ngs("accessConn")
Dim connection As New Data.OleDb.OleDbConnection(connectionstring)
Dim myInsertQuery As String = "insert into cliente([PKIDnif],[Nome],[Morada],[Localidade],[Codigo_Postal],[Pessoa_Contato],[Telefone])
values('" & TextBox1.Text & "','" & TextBox2.Text & "','" &
TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "')"
Dim mycommand As New Data.OleDb.OleDbCommand(myInsertQuery)
mycommand.Connection = connection
connection.Open()
Dim rs As Data.OleDb.OleDbDataReader = mycommand.ExecuteReader
connection.Close()
Dim qry3 As String = "select [PKIDnif] from cliente where [PKIDnif] ='" & TextBox1.Text & "'"
Dim mycommand3 As New Data.OleDb.OleDbCommand(qry3)
Dim myconnection3 As New
Data.OleDb.OleDbConnection(connectionstring)
mycommand3.Connection = myconnection3
myconnection3.Open()
Dim rs3 As
Data.OleDb.OleDbDataReader = mycommand3.ExecuteReader
If rs3.Read()
Then
cod_cliente = rs3("PKIDnif")
End
If
myconnection3.Close()