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

Duvidas com ASP.net

Discussão em 'Programação' iniciada por Webmasterrr, 2 de Abril de 2009. (Respostas: 12; Visualizações: 1498)

  1. Webmasterrr

    Webmasterrr Power Member

    boas, bem tenho tado a criar um site em Asp.net 2.0 e queria saber como é que ligo um botão com uma base de dados para poder fazer um registo de utilizador, ou seja quando o utilizador clica no botão para se registar vai ser adicionado um novo utilizador a minha base de dados. Para mais tarde poder fazer um login. Agradecia que me digam o codigo que devo por no botão de forma a executar o registo.

    Obrigado
     
  2. Webmasterrr

    Webmasterrr Power Member

    a minha base de dados foi feita em SQL server 2005, e a tabela a que quero adicionar utilizadores e chamada de Utilizador.
     
  3. S0ul

    S0ul Power Member

    Se tu fizeres um databind dos dados do cliente à base de dados, podes ter um sqldatasource que faça um insert, agora se queres fazer à mão:

    Código:
               //Connecção à base de dados
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
                SqlTransaction t = null;
                //ligação à base de dados            
                conn.Open();     
                SqlCommand cmd = conn.CreateCommand();
                t = conn.BeginTransaction();
                cmd.Transaction = t;
                //Comando para inserir na base de dados
                cmd.CommandText = @"Insert into Cliente (Nome, NumContribuinte, email, Telefone, CodPostal, Endereco, sexo, DataNascimento,Activo, UserID) values (@Nome, @NumContribuinte, @email, @Telefone, @CodPostal, @Endereco, @sexo, @DataNascimento,1 , @UserID)";
                    //Parametros com os dados para inserir na base de dados
                    cmd.Parameters.AddWithValue("@Nome", Nome.Text);
                    cmd.Parameters.AddWithValue("@NumContribuinte", decimal.Parse(NumContribuinte.Text));
                    cmd.Parameters.AddWithValue("@email", Email.Text);
                    cmd.Parameters.AddWithValue("@Telefone", Telefone.Text);
                    cmd.Parameters.AddWithValue("@CodPostal", decimal.Parse(CodPostal.Text));
                    cmd.Parameters.AddWithValue("@Endereco", Endereco.Text);
                    cmd.Parameters.AddWithValue("@Sexo", Sexo.SelectedItem.Value);
                    cmd.Parameters.AddWithValue("@DataNascimento", DateTime.Parse(DataNasc.Text));
                    cmd.Parameters.AddWithValue("@UserID", Membership.GetUser(UserName.Text).ProviderUserKey);
                    //Executa o comando
                    cmd.ExecuteNonQuery();
                    //Insere na base de dados
                    t.Commit();
    Isto é um exemplo, aplica às tuas necessidades ;).
     
    Última edição: 2 de Abril de 2009
  4. AliFromCairo

    AliFromCairo Power Member

    Podes também criar um stored procedure, e invocá-lo a partir do código.
     
  5. Webmasterrr

    Webmasterrr Power Member

    Duvida continua

     
  6. S0ul

    S0ul Power Member

    Tu através do sqldatasource, se usares o wizard, podes criar automáticamente o insert, de qualquer das formas, tb lá podes inserir à mão, se não souberes, no exemplo que te dei, deixei lá um exemplo de um insert. O databind basta clicares e cima das textbox, ou do que tiveres e dizeres o que equivale em relação base de dados, tipo se é nome, ou outro dado qualquer.
     
  7. Webmasterrr

    Webmasterrr Power Member

    Bem em continuação com o trabalho que tenho estado a fazer surgiu-me mais uma duvida, que é como fazer um Insert numa tabela em que essa tabela tem duas chaves estrangeiras, os valores das chaves estrangeiras são not null tenho de as por null?
    E se eu tentar inserir um Id nas chaves estrangeiras nao da na mesma... Gostaria que me disse-sem o que fazer.

    Obrigado
     
  8. Thorak

    Thorak Power Member

    E tens valores para colocar nas chaves estrangeiras ?

    O ID que inseres nas chaves estrangeiras tem que existir primeiro na chave primaria dessa relação
     
  9. Webmasterrr

    Webmasterrr Power Member

    Pois eu sei... devido a isso criei uma Textbox

    que insere campos de id na tabela com base num gridview que e mostrado com as tabelas com a chave estrangeira associada

    so que mesmo com id existentes na tabela onde tenho as chave primaria ele nao me deixa fazer os inserts na tabela com as chaves estrangeiras
     
    Última edição pelo moderador: 18 de Abril de 2009
  10. Thorak

    Thorak Power Member

    E dá-te algum tipo de erro ?
     
  11. Webmasterrr

    Webmasterrr Power Member

    Sim,

    Erro quando os valores de ID nao estao preenchidos

    Cannot insert the value NULL into column 'id_utilizador', table 'Splendid.dbo.Reserva'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated

    Erro quando preencho os campos ID correctamente

    Cannot insert the value NULL into column 'ID_salas', table 'Splendid.dbo.Reserva'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated.

    nao percebo nada deste erro porque o campo id salas esta a ser inserido na tabela e ele diz que nao consegue inserir valor null???
     
    Última edição pelo moderador: 18 de Abril de 2009
  12. Thorak

    Thorak Power Member

    Dá a sensassão que não está a ir buscar os valores às caixas de texto. tens a certeza que os parâmetros têm os valores com eles quando são inseridos ?

    Uma coisa, em vez de fazeres vários posts, edita o post original
     
  13. Pois antes de começares a querer fazer o site em asp tens que fazer uns testes à consistência da BD.. e o MER tem que tar todo bonitinho snao vais ter grandes problemas para a frente, resultando em alterações dramáticas no código.

    p.s. as chaves primárias deves por automaticas (acho que é "identity(1,1)") para não haver problemas desses.

    Cump's
     

Partilhar esta Página