CANELA 0 Denunciar post Postado Fevereiro 23, 2011 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
Ivan.Teles 23 Denunciar post Postado Fevereiro 23, 2011 Isso depende muito de como você esta executando seu insert no banco, e de que banco esta utilizando. Compartilhar este post Link para o post Compartilhar em outros sites
CANELA 0 Denunciar post Postado Fevereiro 23, 2011 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
Ivan.Teles 23 Denunciar post Postado Fevereiro 23, 2011 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
CANELA 0 Denunciar post Postado Fevereiro 23, 2011 Eles estão na mesma página, fazem parte do mesmo cadastro. Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Fevereiro 23, 2011 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
CANELA 0 Denunciar post Postado Fevereiro 23, 2011 O insert eu estou conseguindo fazer, só não estou conseguindo fazer a sessao. Obrigado!! Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Fevereiro 23, 2011 Quando banco de dados esta usando? Compartilhar este post Link para o post Compartilhar em outros sites
CANELA 0 Denunciar post Postado Fevereiro 23, 2011 Estou usando o sql server direto no vwd2005 Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Fevereiro 24, 2011 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
CANELA 0 Denunciar post Postado Fevereiro 27, 2011 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
Ivan.Teles 23 Denunciar post Postado Fevereiro 28, 2011 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
Daniel LM Costa 2 Denunciar post Postado Março 4, 2011 Session no vb.net é praticamente igual sendo que usa parenteses ao invés de ccolchetes session("id") Compartilhar este post Link para o post Compartilhar em outros sites