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
a minha base de dados foi feita em SQL server 2005, e a tabela a que quero adicionar utilizadores e chamada de Utilizador.
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 .
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.
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
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
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
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???
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
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