none
Incluir registo em duas tabelas no momento de gravar RRS feed

  • 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?
    segunda-feira, 2 de julho de 2012 20:41

Todas as Respostas

  • Está meio vago. O exatamente você precisa fazer que não está conseguindo?

    http://samuelcazelli.blogspot.com/

    terça-feira, 3 de julho de 2012 11:48
  • 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()

    terça-feira, 3 de julho de 2012 13:40