exception
Ola...
Pessoal, fazendo a aula do Guinther de Multitier, ao executar a aplicação para fazer update, encontro o seguinte erro:
Exception has been thrown by the target of an invocation
Alguem já teve o mesmo problema.
Eu criei inclusive outra Solution... fiz a classe novamente... e da o mesmo pau...
Segue a classe:
Pessoal, fazendo a aula do Guinther de Multitier, ao executar a aplicação para fazer update, encontro o seguinte erro:
Exception has been thrown by the target of an invocation
Alguem já teve o mesmo problema.
Eu criei inclusive outra Solution... fiz a classe novamente... e da o mesmo pau...
Segue a classe:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DAL
{
public class Magazines
{
private String ConStr = @"Data Source=FERNANDA_XP\"+
"SQLEXPRESS;Initial Catalog=magazines;Integrated"+" Security=True";
public DataSet Select()
{
SqlConnection con = new SqlConnection(ConStr);
string SQL = "Select * from magazines";
SqlCommand cmd = new SqlCommand(SQL, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
public void Update(int EDITION, string ARTICLE, double LEVEL)
{
SqlConnection con = new SqlConnection(ConStr);
string SQL = "update magazines set ARTICLE=@ARTICLE, LEVEL=@LEVEL, where EDITION=@EDITION";
SqlCommand cmd = new SqlCommand(SQL, con);
cmd.Parameters.AddWithValue("@ARTICLE", ARTICLE);
cmd.Parameters.AddWithValue("@LEVEL", LEVEL);
cmd.Parameters.AddWithValue("@EDITION", EDITION);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}Ffpradella
Curtidas 0
Respostas
Ricardo Silva
17/06/2008
opa...
antes do where não tem a virgula
tira ela e ve se funciona
abraços
antes do where não tem a virgula
tira ela e ve se funciona
abraços
GOSTEI 0
Ffpradella
17/06/2008
Perfect!
Obrigada!
Obrigada!
GOSTEI 0
Ffpradella
17/06/2008
Rica,
Sem querer abusar da sua boa vontade..
qual a outra burrice que eu cometi no Insert?
o Erro eh exatamente o mesmo.... :(
Obrigada
Sem querer abusar da sua boa vontade..
qual a outra burrice que eu cometi no Insert?
public void Insert(int Edition, string Article, double Level)
{
SqlConnection con = new SqlConnection(ConStr);
string SQL = "insert into magazines (Edition,Article,Level) values(@Edition,@Article,@Level)";
SqlCommand cmd = new SqlCommand(SQL, con);
cmd.Parameters.AddWithValue("@Article", Article);
cmd.Parameters.AddWithValue("@Level", Level);
cmd.Parameters.AddWithValue("@Edition", Edition);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}o Erro eh exatamente o mesmo.... :(
Obrigada
GOSTEI 0
Ricardo Silva
17/06/2008
algum campo é Incremental...
pois se tiver vc não deve colocalo.
tipo se o EditionfPor autoIncremento a estrução sera assim:
e não presisa jogar o parametro do Edition
pois se tiver vc não deve colocalo.
tipo se o EditionfPor autoIncremento a estrução sera assim:
string SQL = "insert into magazines (Article,Level) values(@Article,@Level)";
e não presisa jogar o parametro do Edition
GOSTEI 0
Ffpradella
17/06/2008
Edition nao eh autoincremento..
Eh PK mas deve ser informada...
Alguma outra ideia??
Obrigada
Eh PK mas deve ser informada...
Alguma outra ideia??
Obrigada
GOSTEI 0
Ricardo Silva
17/06/2008
A Priori, a estrução SQL parece estar certa....
pode ser problemas no parametros. vo te mostrar como eu faria
tenta isso e ve o q acontece...
pode ser problemas no parametros. vo te mostrar como eu faria
public void Update(int EDITION, string ARTICLE, double LEVEL) {
SqlConnection con = new SqlConnection(ConStr);
string SQL = "update magazines set ARTICLE=@ARTICLE, LEVEL=@LEVEL, where EDITION=@EDITION";
SqlCommand cmd = new SqlCommand(SQL, con);
cmd.Parameters.Add("@ARTICLE", SqlDbType.VarChar, 50).Value = ARTICLE;
cmd.Parameters.Add("@LEVEL", SqlDbType.Decimal).Value = LEVEL;
cmd.Parameters.Add("@EDITION", SqlDbType.Int).Value = EDITION;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
tenta isso e ve o q acontece...
GOSTEI 0
Ricardo Silva
17/06/2008
Otra coisa que pode fazer é colocar um BreakPoint na linha do ExecuteNonQuery e ver os valores do Objeto cmd.
é super facil...
na duvida é soh posta...
ah... apos a 13:00 eu do uma olhada no Forum
T++
é super facil...
na duvida é soh posta...
ah... apos a 13:00 eu do uma olhada no Forum
T++
GOSTEI 0
Ffpradella
17/06/2008
vc se confundiu...
o Update funcionou corretamente depois de retirar a (,) antes do where..
o pau esta no Insert!
obrigada
o Update funcionou corretamente depois de retirar a (,) antes do where..
o pau esta no Insert!
obrigada
GOSTEI 0
Ricardo Silva
17/06/2008
ops...
não que eu tenha me confundido... é apenas a mania do CRTL+C e CRTL+V
acabei copiando codigo errado... :oops:
Desculpe, espero q naum aconteça denovo (rsrsrsrrs) :wink:
não que eu tenha me confundido... é apenas a mania do CRTL+C e CRTL+V
acabei copiando codigo errado... :oops:
Desculpe, espero q naum aconteça denovo (rsrsrsrrs) :wink:
public void Insert(int Edition, string Article, double Level)
{
SqlConnection con = new SqlConnection(ConStr);
string SQL = "insert into magazines (Edition,Article,Level) values(@Edition,@Article,@Level)";
SqlCommand cmd = new SqlCommand(SQL, con);
cmd.Parameters.Add("@ARTICLE", SqlDbType.VarChar, 50).Value = ARTICLE;
cmd.Parameters.Add("@LEVEL", SqlDbType.Decimal).Value = LEVEL;
cmd.Parameters.Add("@EDITION", SqlDbType.Int).Value = EDITION;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
GOSTEI 0
Ffpradella
17/06/2008
Um amigo me sugeriu a seguinte modificacao no Insert:
cmd.Parameters.AddWithValue(´@Edition´, ´Edition´);
ao inves de:
cmd.Parameters.AddWithValue(´@Edition´, Edition);
Funcionou!
Soh que eu nao entendi o motivo!!
cmd.Parameters.AddWithValue(´@Edition´, ´Edition´);
ao inves de:
cmd.Parameters.AddWithValue(´@Edition´, Edition);
Funcionou!
Soh que eu nao entendi o motivo!!
GOSTEI 0
Ricardo Silva
17/06/2008
opssss....
mas é identico...
axo q vc tambem usa CTRL+C
uhauhaua
mas é identico...
axo q vc tambem usa CTRL+C
uhauhaua
GOSTEI 0
Ffpradella
17/06/2008
Nao eh,
olha as aspas simples no Edition..... :S
olha as aspas simples no Edition..... :S
GOSTEI 0
Ricardo Silva
17/06/2008
ata....
mas axo que o que ele ira gravar no banco é a palavra ´Edition´, ao inves do valor armazenado nele.... concorda...
verifica e ve se eu naum estou falando besteira
mas axo que o que ele ira gravar no banco é a palavra ´Edition´, ao inves do valor armazenado nele.... concorda...
verifica e ve se eu naum estou falando besteira
GOSTEI 0
Ffpradella
17/06/2008
Gravou certinho... de acordo com os valores colocados nos fields...
:?
:?
GOSTEI 0
Ricardo Silva
17/06/2008
Legal...
Aprendi mais Uma....
T+
Aprendi mais Uma....
T+
GOSTEI 0