1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Inserir dados em sql a partir de asp.net

Discussão em 'Web Development' iniciada por red_bad, 14 de Junho de 2007. (Respostas: 13; Visualizações: 3877)

  1. red_bad

    red_bad [email protected] Member

    Olá malta eu sou um estagiario e o meu tutor do estagio colocou-me um trabalho que é fazer um site em asp.net, já comecei a fazer a base de dados mas agora quero inserir os dados nas tabelas a partir do site. Quais os códigos que tenho de usar e onde os coloco? É urgente por favor.

    Obrigado

    PS: Estou a usar o Web Matrix para desenvolver no asp e fazer a base de dados em sql
     
  2. alfinete

    alfinete Power Member

    estas a utilizar sql server ou access?, para a bd
     
  3. Primeiro ..tens que colocar a connectionString...no ficheiro web.config..(existe este ficheiro no visual studio nao conheço o web Matrix)

    Código:
    [SIZE=2][COLOR=white][B]<[/B][/COLOR][B][SIZE=2]configuration[/SIZE][SIZE=2]>[/SIZE][/B][/SIZE]
    [COLOR=white][B][SIZE=2]<[/SIZE][SIZE=2]appSettings[/SIZE][SIZE=2]/>[/SIZE][/B][/COLOR]
    [COLOR=white][B][SIZE=2]<[/SIZE][SIZE=2]connectionStrings[/SIZE][SIZE=2]>[/SIZE][/B][/COLOR]
    [COLOR=white][B][SIZE=2]<[/SIZE][SIZE=2]add[/SIZE][SIZE=2]name[/SIZE][SIZE=2]=[/SIZE][SIZE=2]"(nome da connectionstring)[/SIZE][SIZE=2]" [/SIZE][SIZE=2]connectionString[/SIZE][SIZE=2]=[/SIZE][SIZE=2]"[/SIZE][SIZE=2]Data Source=(nomeservidor);Initial Catalog=(nomeBD);Integrated Security=True[/SIZE][SIZE=2]"[/SIZE][/B][/COLOR]
    [COLOR=white][B][SIZE=2]providerName[/SIZE][SIZE=2]=[/SIZE][SIZE=2]"[/SIZE][SIZE=2]System.Data.SqlClient[/SIZE][SIZE=2]"[/SIZE][SIZE=2] />[/SIZE][/B][/COLOR]
    [COLOR=white][B][SIZE=2]</[/SIZE][SIZE=2]connectionStrings[/SIZE][SIZE=2]>[/SIZE][/B][/COLOR]
    [SIZE=2][COLOR=white][B](...)[/B][/COLOR][/SIZE]
    [B]</configuration>[/B]
    
    ...isto é para aceder a bds em SQLServer2005, o data source é o nome do servidor da bd., nomedocomputador/SQLEXPRESS, se tiveres a usar SQLserver2005 EXPRESS....

    Depois para acederes as bds precisas de utilizares outras linguagens como C# ou vb.net...se quiseres mais dicas indica mais concretamente o que queres fazer...:)
     
    Última edição: 14 de Junho de 2007
  4. red_bad

    red_bad [email protected] Member

    Boas. Desculpem pela demora mas tive ausente.
    Bem antes demais obrigado pelas respostas. Começei a usar o Visual studio express e já consegui fazer a ligação à base de dados, mas agora como faço para adicionar dados numa tabela a partir do site? Por exemplo, tenho uma textbox e um botão, escrevo na textbox e clico no botão e os dados vão inserir numa tabela que eu definir. Isso é possível?
    Obrigado desde já
     
  5. red_bad

    red_bad [email protected] Member

    Por favor, alguem que ajude ;)
     
  6. alfinete

    alfinete Power Member

    vars globais

    Código:
    Dim sda As SqlDataAdapter
        Dim ligacao2, strsql As String
        Dim ds As DataSet
    
    evento load da pagina ............................

    page load

    Código:
    ligacao2 = "data source=(local);initial catalog=CMPStocks;" & _
               "integrated security=SSPI;persist security info=True"
    
    
            'faz a respectiva seleccção a base de dados para detactar o 
            'utilizador que foi digitado na caixa de texto
    
            strsql = " SELECT Login FROM TabUtilizador " & _
            " where TabUtilizador.Login ='" & Me.Txtbox_user.Text & "'"
    
    
            sda = New SqlDataAdapter(strsql, ligacao2)
    
            ds = New DataSet()
            sda.Fill(ds)
            sda.Dispose()
    
    ___________________________________

    botão registar ......................


    Código:
    Protected Sub btn_registar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_registar.Click
         
    
    
            Dim ligacao, insere_sql, num
          
            Dim table As DataTable
            ' Dim cont As Integer
    
            ' faz a ligação a base de dados
    
            '**************************************************************************************
            ' verifica se o que foi digitado na caixa de texto é igual a string de pesquiza
            ' strsql feita a cima para detectar se o utilizador ja existe ou não na bd
            ' caso exista faz o seu registo
            ' caso contrario diz que ja existe 
    
    
            table = ds.Tables.Item(0)
            Dim cont As Integer = table.Rows.Count
    
            If cont = 0 Then
              
    
                ligacao = New SqlConnection("data source=(local);initial catalog=CMPStocks;" & _
                                "integrated security=SSPI;persist security info=True")
    
                ' abre a ligação
                ligacao.open()
    
    
                ' faz o sql para inserir cada string inserida no campo respectivo
                ' da bd
    
                insere_sql = "Insert into  TabUtilizador (" & _
                " login,Password,[E-Mail], Previlegios )" & _
                " values (@login, @password,@mail, @prev)"
    
                ' comando pare executar a ligação
                Dim comando As SqlCommand = New SqlCommand(insere_sql, ligacao)
    
                ' cria as variaveis tipo sql parameter associadas aos respectivos tipos
    
                Dim login As SqlParameter = New SqlParameter("@login", SqlDbType.VarChar)
                Dim password As SqlParameter = New SqlParameter("@password", SqlDbType.VarChar)
                Dim mail As SqlParameter = New SqlParameter("@mail", SqlDbType.VarChar)
                Dim prev As SqlParameter = New SqlParameter("@prev", SqlDbType.VarChar)
    
                'atribui o valor inserido no formulario de cada caixa de texto 
                ' a variavel criada a cima
    
                login.Value = Me.Txtbox_user.Text
                password.Value = GeraHash(Me.txtbox_pass.Text)
                mail.Value = Me.Txt_Mail.Text
                prev.Value = Me.ListBox_tipo_util.Text
    
                ' adiciona o valor guardado nessa variavel no respectivo campo da bd
    
                comando.Parameters.Add(login)
                comando.Parameters.Add(password)
                comando.Parameters.Add(mail)
                comando.Parameters.Add(prev)
    
                num = comando.ExecuteNonQuery
    
                ' se existir ligação guarda os dados , caso contrario da mesnagem de erro
                If num = 1 Then
    
                    Me.Label_erro.Visible = True
    
                    Me.Label_erro.Text = "O Utilizador  " & Me.Txtbox_user.Text & "Foi Registado com sucesso"
    
                    Me.Txtbox_user.Text = ""
                    Me.txtbox_pass.Text = ""
                    Me.Txt_Mail.Text = ""
    
                Else
    
                    Me.Label_erro.Visible = True
                    Me.Label_erro.Text = " Erro na interligação de dados"
                End If
    
                ligacao.close()
    
    
    
            Else
                Me.Label_erro.Visible = True
                Me.Label_erro.Text = " Utilizador ja existente "
    
    
    
    
            End If
    
           
        End Sub
    
    
    
    espero que ajude

    esta ligação esta feita em sqlserver 2000, com vb.net em asp.net framework 2
     
    Última edição: 8 de Julho de 2007
  7. red_bad

    red_bad [email protected] Member

    Boas.
    Desde já muito obrigado Alfinete por me teres respondido e ajudado ;)
    Fiz tal e qual o que disseste e até foi fácil e parece que já vai num bom caminho, até já estava a ficar desmoralizado com isto lol só que agora aparecem-me uns quantos erros. Como não os sei explicar bem por aqui deixo um screen
    [​IMG]
    Sabes do que pode ser?

    Obrigado :)

    Cumps
     
  8. SoundSurfer

    SoundSurfer Power Member

  9. red_bad

    red_bad [email protected] Member

    Boas :)
    A parte da conecção eu já sei fazer, eu não sei é o que é que são aqueles erros, diz que não é member do _default mas não faço ideia de como emendar isso.

    Obrigado

    Cumps ;)
     
  10. alfinete

    alfinete Power Member

    isso se não me engano deve ter a ver com os nomes dos objectos que criaste(caixas de texto , etc), e a sua relação com variaveis e atribuições que lhe fiseste, é o que eu acho, pois assim a traves da imagem sem estar em frente a isso , não dá par perceber melhor

    mas isso guarda o registo ou não?

    estas a trabalhar com vb não estas?
     
  11. red_bad

    red_bad [email protected] Member

    Boas.

    Os erros que davam antes já foram resolvidos, pois não tinha criado as textbox's nem as labels.

    os objectos ja estão todos declarados o problema agora é que ao fazer o debug ele apresenta este erro "Cannot open database requested in login 'CMPStocks'. Login fails.
    Login failed for user 'blá blá blá\Tau Tau Tau e coiso'." suponho que esse CMPStocks será algo a ver com a tabela da base de dados não?...digo eu lol.~
    [​IMG]

    obrigado pela ajuda e pelo tempo dispensado alfinete :D

    cumps
     
    Última edição: 10 de Julho de 2007
  12. p3dro

    p3dro Power Member

    tu copiaste literalmente para a tua aplicação todo o código k o alfinete te deu? aquilo era só 1 exemplo, tinhas de adaptar o código às tuas necessidades :)

    o outro erro que te dava era pk n tinhas os objectos criados (como de resto já disseste k corrigiste), no código do alfinete o "CMPStocks" é o nome da base de dados ("initial catalog" na connection string), tens de escrever o nome da tua base de dados
     
  13. alfinete

    alfinete Power Member

    é isso mesmo que o p3dro disse "CMPStocks" é o nome da minha base de dados, ou seja tens de mudar para o nome da tua
     
  14. red_bad

    red_bad [email protected] Member

    Boas.
    Obrigado pelas ajudas pessoal. Já mudei para a minha base de dados mas agora da-me outro erro:
    [​IMG]

    Isto está complicado :S

    Cumps
     

Partilhar esta Página