COMO COMPARAR STRINGS IGNORANDO LETRAS MAIUSCULAS

ELOI 09/02/2013 12:01:18
#419065
pessoal estou desenvolvendo um aplicativo onde o usuario cria as tabelas no banco de dados. estou precisando comparar o nome da tabela que o usuario esta criando para ver se já existe no banco, para isto eu preciso comparar o nome que o usuario digitou em um textbox com as tabelas que já existem no banco. até tudo bem, se é digitado [Ô]Visa[Ô] meu codigo só comparar igual esta na string e não [Ô]visa[Ô] ou [Ô]VISA[Ô]. existe como comparar as strings ignorando as maiusculas
JABA 09/02/2013 16:25:42
#419073
Veja se isso te ajuda:

http://www.w3schools.com/sql/sql_like.asp

http://www.w3schools.com/sql/sql_func_ucase.asp

Qualquer coisa coloque como você está fazendo sua consulta aqui pra analisarmos.

vlw
FELLIPEASSIS 09/02/2013 16:44:21
#419077
deveria desmarcar na instalaçao do banco de dados a opção case insensitive eu acho q assim ajuda um pouco vc
ELOI 11/02/2013 15:29:17
#419133
na verdade eu tenho um textbox onde é digitado o nome de uma conta que vai ser criado uma tabela no banco de dados com este nome. antes de criar a tabela faço uma consulta no banco para ver se já existe alguma tabela com o nome digitado no textbox
exemplo:
se eu tenho uma tabela do banco de dados=Visa e digitar [Ô]visa[Ô] no textbox a function abaixo vai retornar false e vai executar o codigo para criar uma tabela no banco, porém vai gerar erro porque já existe a tabela Visa, o que eu preciso é uma forma de comparar a string com o nome das tabelas ignorando as letras maiusculas.

Public Function VerificaSeTabelaExiste(ByVal strNomeTabela As String) As Boolean

Dim tabela As New DataTable
Dim SQL As String

Sql = [Ô]SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = [ô]BASE TABLE[ô] ORDER BY TABLE_TYPE[Ô]
Try
Dim da As New SqlDataAdapter(SQL, Strcon)
da.Fill(tabela)

For Each dr As DataRow In tabela.Rows
If dr([Ô]TABLE_NAME[Ô]).ToString = strNomeTabela Then
Return True
End If
Next
Return False
Catch ex As Exception
MessageBox.Show([Ô]ERRO [Ô] & ex.Message, [Ô]Verifica tabela[Ô])
Return False
End Tr

End Function

o codigo para criar a tabela é o seguinte:

Dim sql As String = [Ô]CREATE TABLE [Ô] + strNomeTabela + [Ô] (ID int IDENTITY(1,1) NOT NULL , Data date NULL, Gastar money NULL, Pagar money NULL, Historico varchar(50) NOT NULL, Categoria varchar(50) NULL, Limite money NULL, Vencimento date NULL, Saldo money NULL)[Ô]
Dim Con As New SqlConnection(Strcon)
Dim cmd As New SqlCommand(Sql, Con)
Con.Open()
Try

cmd.ExecuteNonQuery()
Catch excp As Exception
Throw
End Try
Con.Close()
JONATHANSTECKER 12/02/2013 08:17:20
#419151
Compare as duas strings como sendo todas as letras em caixa alta.
Exemplo:
If dr([Ô]TABLE_NAME[Ô]).ToString.ToUpper() = strNomeTabela.ToUpper() Then
Return True
End If
OCELOT 12/02/2013 16:55:57
#419168
Resposta escolhida
Pode usar também o método Equals da string

If dr([Ô]TABLE_NAME[Ô]).ToString.Equals(strNomeTabela, StringComparison.OrdinalIgnoreCase) Then
Return True
End If


Outra coisa, se você usa só o campo TABLE_NAME não faça um SELECT *, coloque o nome do campo no SELECT, e de preferencia use um SqlDataReader que é bem mais simples e mais leve do que usar um DataAdapter e DataSet para algo tão simples assim
ELOI 13/02/2013 09:28:55
#419183
ok funcionou. Valeu pela dica.
Tópico encerrado , respostas não são mais permitidas