Kfs987 0 Denunciar post Postado Março 14, 2015 eu tenho um sistema de login com os seguintes campos na tabela mysql Username - Password - Hwid nick - pass - ao fazer login com o usuário nick eu preciso verificar oq está cadastrado em hwid e caso n exista nada o programa deve cadastrar, e caso esteja cadastrado algum valor o programa verifica se é igual ao do computador. onde está o erro ?, basicamente eu preciso ler se for o caso atualizar e ler novamente para comparar os dados Dim Hwid As New clsComputerInfo Dim Cpu As String Dim Lan As String Dim Mobo As String Dim HD As String Cpu = Hwid.GetProcessorId Lan = Hwid.GetMACAddress Mobo = Hwid.GetMotherBoardID HD = Hwid.GetVolumeSerial Dim Key As String = (Cpu & Lan & Mobo & HD) ObjConn.ConnectionString = "server=localhost;" & "user id=Myuser;" & "password=Mypass;" & "database=Myuser;" Try ObjConn.Open() Catch ex As Exception InfluenceTextBox1.Enabled = True InfluenceTextBox2.Enabled = True End Try StrSql = "select UserName, Password, HWID from cadastro where UserName=@field1 and Password=@field2" ObjCmd = New MySql.Data.MySqlClient.MySqlCommand(StrSql, ObjConn) With ObjCmd .Parameters.AddWithValue("@field1", InfluenceTextBox1.Text) .Parameters.AddWithValue("@field2", InfluenceTextBox2.Text) End With ObjCmd.ExecuteNonQuery() ObjDr = ObjCmd.ExecuteReader If (ObjDr.Read()) Then If ObjDr.GetString("HWID") = "" Then StrSqlNew = "UPDATE vip SET HWID=@field where UserName=@field1 and Password=@field2" ObjCmdNew = New MySql.Data.MySqlClient.MySqlCommand(StrSqlNew, ObjConn) With ObjCmdNew .Parameters.AddWithValue("@field", Key) .Parameters.AddWithValue("@field1", InfluenceTextBox1.Text) .Parameters.AddWithValue("@field2", InfluenceTextBox2.Text) End With ObjCmdNew.Dispose() End If if ObjDr.GetString("HWID") = Key Then MsgBox("Hwid Confirmado", MsgBoxStyle.Critical) else MsgBox("Hwid Diferente", MsgBoxStyle.Critical) End If End If consegui fazer funcionar criando 3 conexões a 1º - checa o hwid e em seguida finaliza a 2º - atualiza o hwid e em seguida finaliza a 3º - checa se o hwid do pc é o registrado no servidor se alguém tiver alguma forma mais limpa de fazer isso peço q poste o código, tem uma semana q comecei a programar em vb.net e tou meio q em faze de aprendizado ainda :D Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Março 16, 2015 Você pode usar a mesma conexão, sem fecha-la, é um meio também. Só notei que você não está fazendo a verificação caso não retorne nenhuma linha, você sempre assume que exista um usuário cadastrado, mas se a pessoa digitar, por exemplo, o login errado, ele não vai retornar nenhuma linha e você vai setar o hwid para uma chave inexistente. Compartilhar este post Link para o post Compartilhar em outros sites