STRING COM APOSTROFO

DANLEONHART 16/11/2011 22:42:27
#389253
Dúvida simples...

Tenho um campo numa Tabela que recebe dados do Tipo String...porém dá erro se no nome for usado o [ô] (Apostrofo)...
como faço para corrigir esse erro !

Engraçado...no VB-6 dá erro também
LEONARDO136 16/11/2011 23:13:37
#389255
Usa um Replace
Poste o código de listagem para que eu possa te instruir melhor.
DANLEONHART 17/11/2011 06:29:39
#389258
Para inserir no banco:

Sub Inserir_Dados()
Dim sNome As String = txtNome.Text, sEnde As String = txtEnd.Text, sCid As String = txtCid.Text
Dim Inserir As String = [Ô]INSERT INTO CLIENTES(NOME,ENDERECO,CIDADE)[Ô] & _
[Ô]VALUES([ô][Ô] & sNome & [Ô][ô],[ô][Ô] & sEnde & [Ô][ô],[ô][Ô] & sCid & [Ô][ô])[Ô]

Dim Con2 As New OleDbConnection(Scon)
Con2.Open()
Dim Cmd2 As New OleDbCommand(Inserir, Con2)
Cmd2.ExecuteNonQuery()

MessageBox.Show([Ô]Dados Salvos com Sucesso ![Ô], [Ô]VB.NET 2010[Ô], 0, MessageBoxIcon.Information)

[ô]Limpando Caixas de Textos:
txtNome.Text = IsVazio()
txtEnd.Text = IsVazio()
txtCid.Text = IsVazio()
End Sub


Carregando do Banco para apresentar em ListView

Sub FullListView()
Dim LN As Integer
Dim s_SQL As String = [Ô]SELECT * FROM CLIENTES ORDER BY NOME ASC[Ô]
Using Cnx As New OleDbConnection(Scon)
Cnx.Open()
Using Cm As New OleDbCommand(s_SQL, Cnx)
Using Ds As New DataSet

Using DAdp As New OleDbDataAdapter(Cm)

DAdp.Fill(Ds, [Ô]Clientes[Ô])
[ô] Colocando Nomes nas colunas do ListView:
With Lv2
.Clear()
.Columns.Add([Ô]Nome[Ô], 150, System.Windows.Forms.HorizontalAlignment.Left)
.Columns.Add([Ô]Endereço[Ô], 250, System.Windows.Forms.HorizontalAlignment.Left)
.Columns.Add([Ô]Cidade[Ô], 160, System.Windows.Forms.HorizontalAlignment.Left)
End With

[ô] Povoando o ListView
For LN = 0 To Ds.Tables([Ô]Clientes[Ô]).Rows.Count - 1
With Lv2
.Items.Add(Ds.Tables([Ô]Clientes[Ô]).Rows(LN)([Ô]Nome[Ô]))
.Items(LN).SubItems.Add(Ds.Tables([Ô]Clientes[Ô]).Rows(LN)([Ô]Endereco[Ô]))
.Items(LN).SubItems.Add(Ds.Tables([Ô]Clientes[Ô]).Rows(LN)([Ô]Cidade[Ô]))
End With
Next
End Using
End Using
End Using
End Using
End Sub


Beleza ?!
ALTAIR148 17/11/2011 07:38:19
#389261
Resposta escolhida
Tira o apostrofo, deixe apenas as aspas.
KERPLUNK 17/11/2011 08:38:15
#389267
O correto mesmo, é usar parâmetros e não concatenar uma string para formar o comando SQL. Assim, não precisa se preocupar com esse tipo de problema, além de um monte de outras vantagens.
ALTAIR148 17/11/2011 10:02:39
#389275
Como o KERPLUNK, disse, não tenho um VS aqui para testar, mas acho que fica +/- assim.



        Dim Inserir As New OleDbCommand([Ô]INSERT INTO CLIENTES(NOME,ENDERECO,CIDADE)[Ô] & _
[Ô]VALUES(@Nome, @Endereco, @Cidade[Ô])
Inserir.Parameters.AddWithValue([Ô]@Nome[Ô], TxtNome.Text)
Inserir.Parameters.AddWithValue([Ô]@Endereco[Ô], txtEnd.text)
Inserir.Parameters.AddWithValue([Ô]@Cidade[Ô], txtCidade.text)

Dim Con2 As New OleDbConnection(Scon)
Con2.Open()
Dim Cmd2 As New OleDbCommand(Inserir, Con2)
Cmd2.ExecuteNonQuery()

MessageBox.Show([Ô]Dados Salvos com Sucesso ![Ô], [Ô]VB.NET 2010[Ô], 0, MessageBoxIcon.Information)
DANLEONHART 17/11/2011 19:35:51
#389322
ALTAIR148 : Cara, fiquei curioso...onde posso ter uma explicação detalhada do uso desse [Ô]@[Ô] antes dos campos, e desse [Ô]Parameters[Ô] ???

Gosto de aprender, e não de colar script dos outros e confesso que não conheço esse modo...tudo que aprendí em programação foi na NET então já viu né, leva um pouquinho de tempo para assimilar 100%...mas tenho vontade !
se puder me orientar sobre isso ou me passar algum link que fale detalhado sobre isso eu agradeço !
TECLA 17/11/2011 19:51:12
#389325
Experimente usar DOIS APOSTROFOS no lugar onde deve ter SOMENTE UM.

Exemplo:
[txt-size=2]INSERT INTO Cliente (IDCliente, Nome)
VALUES (1001, [ô]Joana D[ô][ô]arc[ô])[/txt-size]
ALTAIR148 17/11/2011 20:08:15
#389329
oh chegado, tipo eu sei mas não sei te explicar exatamente. Dizem que fica bem melhor passando parâmetros ao invés da string.
DANLEONHART 17/11/2011 21:06:37
#389331
é pessoal...no VB-6 faço assim e dá certinho certinho:

Sub Inserir_Dados()
Abrir_Conexao
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset

Rs.CursorLocation = adUseServer
Rs.Open [Ô]SELECT * FROM Dados[Ô], ObjCon, adOpenStatic, adLockOptimistic
Rs.AddNew

Rs!Empresa = txt_Empresa.Text
Rs!Custo = txt_Custo.Text
Rs.Update
Rs.Close
ObjCon.Close

MsgBox [Ô]Dados Salvos.[Ô], vbInformation, [Ô]Informação.[Ô]

Limpar_Caixas
End Sub


Então basta passa para VB.NET...concordam ???
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas