rjsma Posted October 6, 2009 at 08:53 PM Report Share #290334 Posted October 6, 2009 at 08:53 PM boas eu tou a fazer um sistema de login no vb juntamente com o access e queria saber na form para criar uma conta como fazo para mandar as informacoes(utilizador e senha) para a base de dados(access) cumps Link to comment Share on other sites More sharing options...
bruno1234 Posted October 6, 2009 at 09:42 PM Report Share #290359 Posted October 6, 2009 at 09:42 PM Podes fazer via ado.net. Atenção q se vais guardar uma senha na base de dados convém q esteja cifrada. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
bioshock Posted October 6, 2009 at 09:51 PM Report Share #290364 Posted October 6, 2009 at 09:51 PM boas eu tou a fazer um sistema de login no vb juntamente com o access e queria saber na form para criar uma conta como fazo para mandar as informacoes(utilizador e senha) para a base de dados(access) cumps Antes de mais tens de ter esses campos na base de dados, do género: Tabela Login » Campos: Utilizador e Senha Depois no Vb.Net chamas, via wizard ou código, a tabela. Link to comment Share on other sites More sharing options...
rjsma Posted October 7, 2009 at 12:15 PM Author Report Share #290418 Posted October 7, 2009 at 12:15 PM eu ja criei a base de dados o meu problema e liga a form para criar uma conta a base de dados Link to comment Share on other sites More sharing options...
bioshock Posted October 7, 2009 at 06:28 PM Report Share #290505 Posted October 7, 2009 at 06:28 PM Decerteza que isto te vai ajudar http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html Atenção: Isso é a ligação para o SQL Server, para Access procuras um pouco na net e encontras facilmente. Cumps. Link to comment Share on other sites More sharing options...
rjsma Posted October 7, 2009 at 07:56 PM Author Report Share #290536 Posted October 7, 2009 at 07:56 PM vou fazer a conexao por via ado mas nao encontro o control ado no vb era suposto aparecer ,certo? cumps Link to comment Share on other sites More sharing options...
bruno1234 Posted October 7, 2009 at 07:58 PM Report Share #290538 Posted October 7, 2009 at 07:58 PM Qual controlo? Tens é q fazer uma class library com os métodos q necessitas para as operações na base de dados. Para isso usas a dll com o provider para o teu motor de base de dados. Pesquisa no google por ADO .net em VB .net para veres um exemplos. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
rjsma Posted October 8, 2009 at 11:07 AM Author Report Share #290631 Posted October 8, 2009 at 11:07 AM encontrei este exemplo http://www.macoratti.net/vbna_cp1.htm e no inicio da pagina diz para criamos uma Blank Solution no vb.net nao tem essa opcao Link to comment Share on other sites More sharing options...
zephirus Posted October 8, 2009 at 01:45 PM Report Share #290661 Posted October 8, 2009 at 01:45 PM Eu no meu programa estou a usar SQLite (que aliás, recomendo!) Para access é idêntico. Vou-te dar um exemplo com sqlite (não sei se tem algum erro mas a ideia é esta) Primeiro passo: na base de dados, deves criar uma tabela do género: [users] - username - password Na form colocas estes objectos: - textbox (txtUsername) - button (txtPassword) - button (btnOk) - button (btnCancel) Código: Imports System.Text Imports System.Security.Cryptography Imports System.Data.SQLite Public userExists As Boolean Sub BtnCreateUserClick(sender As Object, e As EventArgs) Select Case (String.IsNullOrEmpty(txtusername.Text.Trim()) Or String.IsNullOrEmpty(txtpassword.Text.Trim())) Case True MsgBox("All fields are required.", MsgBoxStyle.Critical, "Incomplete fields") Case False btn_Ok.Enabled = False btn_Exit.Enabled = False CheckUserData("checkUserExistance", txtusername.Text.Trim(), GenerateHash(txtpassword.Text)) Select Case userExists Case = True MsgBox("o username escolhido já está atribuido.", MsgBoxStyle.Critical, "user inválido") Case = False AddNewUser(txtusername.Text.Trim(), GenerateHash(txtpassword.Text)) MsgBox("User criado com sucesso.", MsgBoxStyle.Information, "user criado") End Select End Select End Sub Sub BtnLoginClick(sender As Object, e As EventArgs) Select Case (String.IsNullOrEmpty(txtusername.Text.Trim()) Or String.IsNullOrEmpty(txtpassword.Text.Trim())) Case True MsgBox("All fields are required.", MsgBoxStyle.Critical, "Incomplete fields") Case False btn_Ok.Enabled = False btn_Exit.Enabled = False CheckUserData("checkUserNameAndPassword", txtusername.Text.Trim(), GenerateHash(txtpassword.Text)) Select Case userExists Case = True MsgBox("Login com sucesso.", MsgBoxStyle.Critical, "Login válido") Case = False MsgBox("username ou password erradas", MsgBoxStyle.Information, "Login errado") End Select End Select End Sub Function AddNewUser(ByVal username As String, password As String) Dim SQLconnect As New SQLiteConnection() Dim SQLcommand As SQLiteCommand SQLconnect.ConnectionString = "Data Source=" & appPath & databaseFile & databasePassword SQLconnect.Open() SQLcommand = SQLconnect.CreateCommand SQLcommand.CommandText = "INSERT INTO Users (username, password) VALUES ('" & username & "', '" & password & "')" SQLcommand.ExecuteNonQuery() SQLconnect.Close() End Function Function CheckUserData(ByVal Action As String, ByVal username As String, ByVal password As String) As Boolean userExists = False Dim SQLconnect As New SQLiteConnection() Dim SQLcommand As SQLiteCommand SQLconnect.ConnectionString = "Data Source=" & appPath & databaseFile & databasePassword SQLconnect.Open() SQLcommand = SQLconnect.CreateCommand Select Case Action Case = "checkUserExistance" SQLcommand.CommandText = "SELECT * FROM Users WHERE username = '" & username & "'" Case = "checkUserNameAndPassword" SQLcommand.CommandText = "SELECT * FROM Users WHERE username = '" & username & "' AND password = '" & password & "'" End Select Dim SQLreader As SQLiteDataReader = SQLcommand.ExecuteReader() While SQLreader.Read() userExists = True End While SQLconnect.Close() Return userExists End Function Function GenerateHash(ByVal SourceText As String) As String Dim Ue As New UnicodeEncoding() Dim ByteSourceText() As Byte = Ue.GetBytes(SourceText) Dim Md5 As New MD5CryptoServiceProvider() Dim ByteHash() As Byte = Md5.ComputeHash(ByteSourceText) Return Convert.ToBase64String(ByteHash) End Function Link to comment Share on other sites More sharing options...
rjsma Posted October 8, 2009 at 02:50 PM Author Report Share #290683 Posted October 8, 2009 at 02:50 PM eu nao tenha bem a nocao o que tenho de modificar nesse codigo cumps Link to comment Share on other sites More sharing options...
rjsma Posted October 8, 2009 at 04:23 PM Author Report Share #290711 Posted October 8, 2009 at 04:23 PM boas encontrei este exemplo Dim ws as Workspace dim db as database dim strConnection as string set ws=DBEngine.Workspaces(0) let strConnection= "ODBC;DSN=" & DatabaseName & ";UID=" & UserName & ";PWD=" & UserPassword set db=ws.OpenDatabase("", False, False, strConnection) queria saber se deve por este codigo se e no evento do botao para fazer o registo ou no ODBC Connection ? ja agora obrigado pela a ajuda cumps Link to comment Share on other sites More sharing options...
rjsma Posted October 24, 2009 at 10:41 PM Author Report Share #293254 Posted October 24, 2009 at 10:41 PM boas tenho o seguinte codigo num botao Dim conn As New MySqlConnection conn.ConnectionString = "server=127.0.0.1;user id=administrador;password=software2010;database=software" conn.Open() myCommand.Connection = conn myCommand.CommandText = "SELECT count(* ) N FROM `software`.`login` where utilizador = '" + UsernameTextBox.Text + "'" + " and senha = '" + PasswordTextBox.Text + "'" If (Convert.ToInt32(myCommand.ExecuteScalar()) = 1) Then Principal.Show() Me.Hide() Else Me.Close() End If End Sub eu nao tou a conseguir uma parte do codigo se o nome do user e da password estever errados fazer aparecer uma box a disser login invalido cumps Link to comment Share on other sites More sharing options...
bioshock Posted October 25, 2009 at 03:06 PM Report Share #293289 Posted October 25, 2009 at 03:06 PM Na tua linha de código: Else Me.Close() End If Alteras para: Else messagebox.show("Login Inválido") Textbox1.Clear Textbox2.Clear End If Link to comment Share on other sites More sharing options...
rjsma Posted October 25, 2009 at 03:31 PM Author Report Share #293291 Posted October 25, 2009 at 03:31 PM nao aparece quando nao introduzo as informacoes correctas o programa faz isto http://img33.imageshack.us/img33/4046/fsasd.jpg cumps Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 10:18 AM Report Share #293383 Posted October 26, 2009 at 10:18 AM http://www.connectionstrings.com/ este site ajuda-vos com as strings de conexão. Quanto ao código de conexão tens muitos na net. o que eu uso com sql é este: cnn = New SqlConnection("StringDe Conecção no site.") cnn.open Dim ds As New DataSet Dim da As New SqlDataAdapter("select * from login where user=1 and pass=2", cnn) da.Fill(ds) If ds.Tables(0).Rows.Count > 0 Then else msgbox("invalido") end if quanto ao login lembra-te de encriptares a pass com MD5 na base de dados. Segurança sempre em primeiro não é só em relações tá? XD Link to comment Share on other sites More sharing options...
rjsma Posted October 26, 2009 at 12:10 PM Author Report Share #293391 Posted October 26, 2009 at 12:10 PM nao queria alterar todo o meu codigo o meu programa ja ta a funcionar mas so queria que aparecesse uma box a disser login invalido se eu nao introduzir as informacoes correctas cumps Link to comment Share on other sites More sharing options...
Gooden Posted October 27, 2009 at 09:36 AM Report Share #293516 Posted October 27, 2009 at 09:36 AM Mostra o código onde fazes o login. com tanto código já nem sei o que tens Link to comment Share on other sites More sharing options...
rjsma Posted October 27, 2009 at 09:38 AM Author Report Share #293517 Posted October 27, 2009 at 09:38 AM Dim conn As New MySqlConnection conn.ConnectionString = "server=127.0.0.1;user id=administrador;password=software2010;database=software" conn.Open() myCommand.Connection = conn myCommand.CommandText = "SELECT count(* ) N FROM `software`.`login` where utilizador = '" + UsernameTextBox.Text + "'" + " and senha = '" + PasswordTextBox.Text + "'" If (Convert.ToInt32(myCommand.ExecuteScalar()) = 1) Then Principal.Show() Me.Hide() Else Me.Close() End If End Sub Link to comment Share on other sites More sharing options...
apocsantos Posted October 27, 2009 at 09:57 AM Report Share #293520 Posted October 27, 2009 at 09:57 AM Dim conn As New MySqlConnection conn.ConnectionString = "server=127.0.0.1;user id=administrador;password=software2010;database=software" conn.Open() myCommand.Connection = conn myCommand.CommandText = "SELECT count(* ) N FROM `software`.`login` where utilizador = '" + UsernameTextBox.Text + "'" + " and senha = '" + PasswordTextBox.Text + "'" If (Convert.ToInt32(myCommand.ExecuteScalar()) = 1) Then Principal.Show() conn.close() Me.Hide() Else messagebox.show("Login Inválido") conn.close () Me.Close() End If End Sub Aconselhava-te a encriptar as passes a serem armazenadas na tabela, pelo menos em MD5, mas se quizeres usa Triple-DES. Não precisas de fazer grandes alterações no codigo, basta usares uma função decript para desencriptar os valores de login e pass que vêem encriptados da tabela antes de executares a condição IF. Não te esqueças que para fazer isto quando criares um novo user tens de encriptar da mesma forma o user e pass com uma função "encript". Se precisares posso deixar-te exemplos de codigo para Triple-DES. Uma coisa que reparei foi que não fechavas a connecção após terminar a form. Existe alguma razão especial para isto?? Cumprimentos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
Gooden Posted October 27, 2009 at 10:31 AM Report Share #293525 Posted October 27, 2009 at 10:31 AM If (Convert.ToInt32(myCommand.ExecuteScalar()) = 1) Then Principal.Show() Me.Hide() Else Msgbox("Login Inválido") End If assim deveria funcionar Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now