Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CANELA

Como pegar um ID

Recommended Posts

Pessoal,

 

Estou com a seguinte dúvida:

Estou fazendo uma pagina de cadastro, em que o usuário insere seus dados, e automaticamente é garado um id para ele. na mesma pagina, ele deve inserir 5 fotos (estas fazem parte de uma outra tabela no banco, que tem como chave estrangeira o id do usuário que esta sendo cadastrado).

Porém, nao sei como faço para pegar este id e colocar no insert destas fotos.

 

Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou começando agora no vwd e estou apanhando um pouco...

 

Tenho uma tela de cadastro com os dados da pessoa, e ao fim deste cadastro, no mesmo formulario, existem 5 filesupload para fotos.

No cadastro consegui inserir os dados, agora, preciso inserir as fotos, que devem ser armazenadas na tabela imagem passando o cod da tabela cadastro.

Acho que estou no caminho certo para esta inserção, porém, nao sei como me referir a este cod da tabela cadastro.

 

estou utilizando o banco sql, no vwd2005, quanto ao insert, estou tentando fazer da seguinte forma:

 

strSQL = "Insert Into imagem" + Request.QueryString("homecod") + "(imagem,imagemTipo,imagemTamanho) Values(@img,@imgTipo,@imgTamanho)"

 

porem com request.queryString não funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Após o cadastro você redireciona para a pagina com os upload? exemplo: paginaDeUploads.aspx?homeCod=121?

Ou os uploads estão na mesma página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você terá que realizar o insert na tabela de cadastro, e pegar o ID e salvar em uma sessão para poder ir adicionando no cadastro das fotos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim, no final do seu Insert coloque isso: SELECT @@IDENTITY, e execute o metodo ExecuteEscalar, assim retorna o ID do registro inserido.

"INSERT into tabela () VALUES (); SELECT @@IDENTITY"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim, no final do seu Insert coloque isso: SELECT @@IDENTITY, e execute o metodo ExecuteEscalar, assim retorna o ID do registro inserido.

"INSERT into tabela () VALUES (); SELECT @@IDENTITY"

 

Tenho 2 inserts, cada um esta em uma protected function diferente, tentei aplicar o indicado acima, mas nao consegui. sou iniciante, e estou com dificuldades nisto, mesmo tendo pesquisado bastante como fazer, estou encontrando dificuldades, pois me parece que existem varias formas de resolver.

segue abaixo meu cod.

 


   Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click


       Dim tamanho As Integer
       Dim vetor As Byte()

       If FileUpload.PostedFile Is Nothing Then
           lblstatus.Text = "Nenhum arquivo definido."
           Exit Sub
       Else

           Dim nomeArquivo As String = FileUpload.PostedFile.FileName
           Dim ext As String = nomeArquivo.Substring(nomeArquivo.LastIndexOf("."))
           ext = ext.ToLower

           Dim imgTipo = FileUpload.PostedFile.ContentType

           If ext = ".jpg" Then
           ElseIf ext = ".bmp" Then
           ElseIf ext = ".gif" Then
           ElseIf ext = "jpg" Then
           ElseIf ext = "bmp" Then
           ElseIf ext = "gif" Then
           Else
               lblstatus.Text = "Somente são suportados arquivos nos formatos: gif, bmp, ou jpg."
               Exit Sub
           End If

           tamanho = Convert.ToInt32(FileUpload.PostedFile.InputStream.Length)
           ReDim vetor(tamanho)

           FileUpload.PostedFile.InputStream.Read(vetor, 0, tamanho)

           If SalvaImagem(txttitulo.Text.Trim, txtdescricao.Text, num_quartos.Text, num_suites.Text, num_pessoas.Text, vetor, tamanho, imgTipo) = True Then
               lblstatus.Text = "Imagem enviada com sucesso..."
           Else
               lblstatus.Text = "Ocorreu um erro durante o envio da imagem... Tente novamente..."
           End If
       End If

       ' PARTE DA SEGUNDA INSERÇÃO DE IMAGEM

       If FileUpload2.PostedFile Is Nothing Then
           lblstatus.Text = "Nenhum arquivo definido."
           Exit Sub
       Else

           Dim nomeArquivo As String = FileUpload2.PostedFile.FileName
           Dim ext As String = nomeArquivo.Substring(nomeArquivo.LastIndexOf("."))
           ext = ext.ToLower

           Dim imgTipo = FileUpload2.PostedFile.ContentType

           If ext = ".jpg" Then
           ElseIf ext = ".bmp" Then
           ElseIf ext = ".gif" Then
           ElseIf ext = "jpg" Then
           ElseIf ext = "bmp" Then
           ElseIf ext = "gif" Then
           Else
               lblstatus.Text = "Somente são suportados arquivos nos formatos: gif, bmp, ou jpg."
               Exit Sub
           End If

           tamanho = Convert.ToInt32(FileUpload2.PostedFile.InputStream.Length)
           ReDim vetor(tamanho)

           FileUpload.PostedFile.InputStream.Read(vetor, 0, tamanho)

           If SalvaImagem1(vetor, tamanho, imgTipo) = True Then
               lblstatus.Text = "Imagem enviada com sucesso..."
           Else
               lblstatus.Text = "Ocorreu um erro durante o envio da imagem... Tente novamente..."
           End If
       End If


       ' FIM SEGUNDA INSERÇÃO DE IMAGEM


   End Sub
   Protected Function SalvaImagem(ByVal Titulo As String, ByVal descricao As String, ByVal num_quartos As Integer, ByVal num_suites As Integer, ByVal num_pessoas As Integer, ByVal img As Byte(), ByVal imgTamanho As Integer, ByVal imgTipo As String) As Boolean

       Try
           Dim cnn As Data.SqlClient.SqlConnection
           Dim cmd As Data.SqlClient.SqlCommand
           Dim param As Data.SqlClient.SqlParameter
           Dim strSQL As String


           strSQL = "Insert Into home(Titulo,descricao,num_quartos,num_suites,num_pessoas,imagem,imagemTipo,imagemTamanho) Values(@Titulo,@descricao,@num_quartos,@num_suites,@num_pessoas,@img,@imgTipo,@imgTamanho);SELECT @@IDENTITY"


           'defina a string de conexão e cria uma nova conexão
           Dim connString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=""|DataDirectory|\temporada.mdf"";Integrated Security=True;User Instance=True"
           cnn = New Data.SqlClient.SqlConnection(connString)

           'define o comando a ser executado
           cmd = New Data.SqlClient.SqlCommand(strSQL, cnn)

           'recebe os parâmetros

           param = New Data.SqlClient.SqlParameter("@Titulo", Data.SqlDbType.VarChar)
           param.Value = Titulo
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@descricao", Data.SqlDbType.VarChar)
           param.Value = descricao
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@num_quartos", Data.SqlDbType.Int)
           param.Value = num_quartos
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@num_suites", Data.SqlDbType.Int)
           param.Value = num_suites
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@num_pessoas", Data.SqlDbType.Int)
           param.Value = num_pessoas
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@img", Data.SqlDbType.Image)
           param.Value = img
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@imgTipo", Data.SqlDbType.VarChar)
           param.Value = imgTipo
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@imgTamanho", Data.SqlDbType.BigInt)
           param.Value = imgTamanho
           cmd.Parameters.Add(param)


           'abre a conexão
           cnn.Open()
           'executa a instrução SQL se retornar

           cmd.ExecuteNonQuery()
           'fecha a conexao
           cnn.Close()
           Return True
       Catch ex As Exception
           MsgBox(ex.Message)
           Return False
       End Try

   End Function


   ' INICIO FUNÇÃO - SEGUNDA IMAGEM



   Protected Function SalvaImagem1(ByVal img As Byte(), ByVal imgTamanho As Integer, ByVal imgTipo As String) As Boolean

       Try
           Dim cnn As Data.SqlClient.SqlConnection
           Dim cmd As Data.SqlClient.SqlCommand
           Dim param As Data.SqlClient.SqlParameter
           Dim strSQL As String

           strSQL = "Insert Into imagem (imagem,imagemTipo,imagemTamanho,homecod) Values(@img,@imgTipo,@imgTamanho,@homecod)"

           'defina a string de conexão e cria uma nova conexão
           Dim connString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=""|DataDirectory|\temporada.mdf"";Integrated Security=True;User Instance=True"
           cnn = New Data.SqlClient.SqlConnection(connString)

           'define o comando a ser executado
           cmd = New Data.SqlClient.SqlCommand(strSQL, cnn)

           'recebe os parâmetros

           param = New Data.SqlClient.SqlParameter("@img", Data.SqlDbType.Image)
           param.Value = img
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@imgTipo", Data.SqlDbType.VarChar)
           param.Value = imgTipo
           cmd.Parameters.Add(param)

           param = New Data.SqlClient.SqlParameter("@imgTamanho", Data.SqlDbType.BigInt)
           param.Value = imgTamanho
           cmd.Parameters.Add(param)


           'abre a conexão
           cnn.Open()
           'executa a instrução SQL se retornar
           cmd.ExecuteNonQuery()
           'fecha a conexao
           cnn.Close()
           Return True
       Catch ex As Exception
           MsgBox(ex.Message)
           Return False
       End Try
   End Function



   ' FIM FUNÇÃO SEGUNDA IMAGEM



End Class


Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei como fica pra gravar uma sessão em VB.NET então Session["id"] é como se faz no C#.

Mas na linha cmd.ExecuteNonQuery() do método Protected Function SalvaImagem, altere para Session["id"] = cmd.ExecuteScalar()

Dai no método Protected Function SalvaImagem1 o parametro @homecod deve receber o Session["id"], ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.