PESQUISA MYSQL INSENSITIVE

SILVAHH 05/07/2013 22:01:50
#425641
Olá amigos, preciso de ujma ajudinha aqui,,,muito urgente, preciso de um código para pesquisar em MySQL com cases insensitivas que no caso se eu tenho um registro na tabela com nome de [Ô]João[Ô] e eu pesquisar por [Ô]João / joão / joao[Ô] como exemplo ele vai me retornar o [Ô]João[Ô] registrado na tabela ^^

Eu já tentei muitas coisas...

como por exemplo o que mais achei foi sobre o BINARY

Dim cmd As MySql.Data.MySqlClient.MySqlCommand
cmd = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM accounts WHERE BINARY name = [ô][Ô] & TextBox1.Text & [Ô][ô][Ô], conectar)

e outros meios...mas até agora sem resultado, e a tabela que está registrado os nomes está na coleção latin1_swedish_ci que Não diferencia maiúsculas/minúsculas!

Por favor pessoal agradeceria muito se me ajudassem.
CLEVERTON 06/07/2013 00:16:19
#425646
pq vc não configura isso no próprio mySQL ?

lá vai ter as opções pra case sensitive
SILVAHH 06/07/2013 01:38:04
#425651
Citação:

:
pq vc não configura isso no próprio mySQL ?

lá vai ter as opções pra case sensitive



Mesmo...?agora que você disse vou pesquisar isso, não sabia ^^

Muito obrigado amigo qualquer coisa eu volto aqui pra te reputar!
OMAR2011 06/07/2013 09:50:17
#425653
Resposta escolhida
cmd = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM accounts WHERE BINARY name like [ô]%[Ô] & TextBox1.Text &[Ô]%[ô][Ô], conectar)
Tente este.
SILVAHH 06/07/2013 14:01:08
#425662
Citação:

:
cmd = New MySql.Data.MySqlClient.MySqlCommand([Ô]SELECT * FROM accounts WHERE BINARY name like [ô]%[Ô] & TextBox1.Text &[Ô]%[ô][Ô], conectar)
Tente este.



Obrigado pela ajuda amigo, mas ainda não funciona =/
OMAR2011 06/07/2013 15:06:04
#425666
SILVAHH,o que é BINARY name.
Fiz um teste aqui com mysql e funcionou.

Dim cnn As New MySqlConnection([Ô]Server=localhost;Database=bras2013; User=root;Password=12qw[Ô])
cnn.Open()
Dim cmd1 As MySqlCommand
Dim dt As New DataTable
cmd1 = cnn.CreateCommand
cmd1.CommandType = CommandType.Text
cmd1.CommandText = [Ô]Select * From Admins Where Usuario like [ô]%[Ô] + txtpesquisa.Text + [Ô]%[ô][Ô]
cmd1.Parameters.Add([Ô]@usuario[Ô], MySqlDbType.VarChar)
cmd1.Parameters([Ô]@usuario[Ô]).Value = [Ô]%[Ô] + txtpesquisa.Text + [Ô]%[Ô]
dt.Load(cmd1.ExecuteReader())
DataGridView1.DataSource = dt.Copy()
[ô] DataGridView1.Columns([Ô]Valor[Ô]).DefaultCellStyle.Format = [Ô]C2[Ô]
cnn.Close()
cmd1.Dispose()
Deste jeito.
SILVAHH 06/07/2013 15:14:10
#425668
Citação:

:
SILVAHH,o que é BINARY name.
Fiz um teste aqui com mysql e funcionou.

Dim cnn As New MySqlConnection([Ô]Server=localhost;Database=bras2013; User=root;Password=12qw[Ô])
cnn.Open()
Dim cmd1 As MySqlCommand
Dim dt As New DataTable
cmd1 = cnn.CreateCommand
cmd1.CommandType = CommandType.Text
cmd1.CommandText = [Ô]Select * From Admins Where Usuario like [ô]%[Ô] + txtpesquisa.Text + [Ô]%[ô][Ô]
cmd1.Parameters.Add([Ô]@usuario[Ô], MySqlDbType.VarChar)
cmd1.Parameters([Ô]@usuario[Ô]).Value = [Ô]%[Ô] + txtpesquisa.Text + [Ô]%[Ô]
dt.Load(cmd1.ExecuteReader())
DataGridView1.DataSource = dt.Copy()
[ô] DataGridView1.Columns([Ô]Valor[Ô]).DefaultCellStyle.Format = [Ô]C2[Ô]
cnn.Close()
cmd1.Dispose()
Deste jeito.




Olá amigo, realmente muito obrigado mesmo pelas suas ajudas, eu pesquisei e achei outro meio de fazer isso

cmd.CommandText = [Ô]SELECT * FROM accounts WHERE name = [ô][Ô] & TextBox1.Text & [Ô][ô][Ô]
cmd.ExecuteNonQuery()
dr = cmd.ExecuteReader()
If dr.HasRows = True Then
Label7.Text = [Ô]Usuário já existe![Ô]
dr.Close()

Desse modo funcionou amigo ^^

Mais uma vez obrigado pela ajuda amigo!
Tópico encerrado , respostas não são mais permitidas