INSERIR DADOS SEM USAR PARAMENTROS

JRABELO 01/12/2012 21:37:58
#415236
Boa noite Pessoal,

Alguem poderia me dizer se existe um forma de fazer o insert into sem usar os paramentros, por exemplo igual ao windows form abaixo ???

SQL += [Ô]INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES([Ô]
SQL += [Ô][ô][Ô] & txtCod.Text & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(mskData.Text) & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(txtValEntrada.Text) & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(txtHistorico.Text) & [Ô][ô])[Ô]

No asp.net ele informa que o símbolo [Ô] & [Ô] não é valido.
KERPLUNK 03/12/2012 08:41:05
#415293
O problema não é o [Ô]ASP.NET[Ô], o problema é que você está concatenando errado. Nem vou corrigir a concatenação, vou mostrar pra você como usar parâmetros de verdade:

[c#]

using (SqlCommand cmd = new SqlCommand([Ô]Insert Into TABELA (Campo1, campo2) Values (@Valor1, @valor2)[Ô], Conexao)
{
cmd.Parameters.AddWithValue([Ô]Valor1[Ô], mskData.text);
cmd.Parameters.AddWithValue([Ô]Valor1[Ô], txtOUTRO_CAMPO.text);
cmd.ExecuteNonQuery();
}

FOXMAN 03/12/2012 20:39:48
#415345
Citação:

:
Boa noite Pessoal,

Alguem poderia me dizer se existe um forma de fazer o insert into sem usar os paramentros, por exemplo igual ao windows form abaixo ???

SQL += [Ô]INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES([Ô]
SQL += [Ô][ô][Ô] & txtCod.Text & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(mskData.Text) & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(txtValEntrada.Text) & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & UCase(txtHistorico.Text) & [Ô][ô])[Ô]

No asp.net ele informa que o símbolo [Ô] & [Ô] não é valido.



Da forma que vc esta concatenando vc está colocando o INSERT INTO BLA...BLA...BLA em cada linha que contem a variável SQL.

Seu SQL ficaria assim :

INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(TXTCOD.TE,INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(TXTCOD.TE,INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES(UCase(mskData.Text),
BLA...
BLA...
BLA...

Quando o correto seria :

SQL += [Ô]INSERT INTO TB_ENTRADA(COD,DATA,VALOR,HISTORICO)VALUES([Ô] & _
[Ô][ô][Ô] & txtCod.Text & [Ô][ô],[Ô] & _
[Ô][ô][Ô] & UCase(mskData.Text) & [Ô][ô],[Ô] & _
[Ô][ô][Ô] & UCase(txtValEntrada.Text) & [Ô][ô],[Ô] & _
[Ô][ô][Ô] & UCase(txtHistorico.Text) & [Ô][ô])[Ô]

Algo assim....

Nem testei a sql , mas como o KERPLUNK falou há erro na concatenação da sql.




JRABELO 03/12/2012 21:50:52
#415348
Fiz assim com parametro:

Conecta()
SQL = [Ô]INSERT INTO TB_NOTAS(COD, NR_NOTA, DT_NOTA, FORNECEDOR, DT_VENCIMENTO,[Ô]
SQL += [Ô]DT_RECEBIMENTO, DT_LANCAMENTO, DT_ENTREGA, NR_SOLCITACAO)values([Ô]
SQL += [Ô]@txtCodigo,@txtnrNF,@txtEmissao,@txtFornec,@txtVenc,@txtRec,[Ô]
SQL += [Ô]@txtLanc,@txtEntregue,@txtSolic)[Ô]

cmd = New OleDbCommand(SQL, cnn)
cmd.Parameters.AddWithValue([Ô]@txtCodigo[Ô], txtCodigo.Text)
cmd.Parameters.AddWithValue([Ô]@txtnrNF[Ô], txtnrNF.Text)
cmd.Parameters.AddWithValue([Ô]@txtEmissao[Ô], txtEmissao.Text)
cmd.Parameters.AddWithValue([Ô]@txtFornec[Ô], txtFornec.Text)
cmd.Parameters.AddWithValue([Ô]@txtVenc[Ô], txtVenc.Text)
cmd.Parameters.AddWithValue([Ô]@txtRec[Ô], txtRec.Text)
cmd.Parameters.AddWithValue([Ô]@txtLanc[Ô], txtFornec.Text)
cmd.Parameters.AddWithValue([Ô]@txtEntregue[Ô], txtEntregue.Text)
cmd.Parameters.AddWithValue([Ô]@txtSolic[Ô], txtSolic.Text)

cnn.Open()
cmd.ExecuteNonQuery()
Response.Write([Ô]<script language=[ô]javascript[ô]>alert([ô]Cadastro efetuado com sucesso !!![ô]);</script>[Ô])
cnn.Close()

Com o parametro fuciona normal, sem erros!


Mas costaria de fazer de modo normal sem usar o parametro, conforme abaixo:

Conecta()
SQL = [Ô]INSERT INTO TB_NOTAS(COD, NR_NOTA, DT_NOTA, FORNECEDOR, DT_VENCIMENTO,[Ô]
SQL += [Ô]DT_RECEBIMENTO, DT_LANCAMENTO, DT_ENTREGA, NR_SOLCITACAO)values([Ô]
SQL += [Ô][ô][Ô] & txtCodigo & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtnrNF & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtEmissao & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtFornec & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtVenc & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtRec & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtLanc & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtEntregue & [Ô][ô],[Ô]
SQL += [Ô][ô][Ô] & txtSolic & [Ô][ô])[Ô]

cmd = New OleDbCommand(SQL, cnn)
cnn.Open()
cmd.ExecuteNonQuery()
Response.Write([Ô]<script language=[ô]javascript[ô]>alert([ô]Cadastro efetuado com sucesso !!![ô]);</script>[Ô])
cnn.Close()

OBS: No asp.net ele informa que o símbolo [Ô] & [Ô] não é valido com string.




OCELOT 04/12/2012 08:48:20
#415367
Não faça sem parâmetros, usar parâmetros é a forma correto e recomendada de se fazer isso, o jeito que você diz ser [Ô]normal[Ô] é o modo não recomendado e aberto a bugs.

Outra coisa, não use Response.Write no ASP.Net, se quer rodar um script use a função RegisterStartupScript do ClientScriptManager
JRABELO 10/12/2012 21:18:06
#415756
Obrigado pela Dica e ajuda de todos, consegui resolver o problema.

Grato.
Tópico encerrado , respostas não são mais permitidas