Atualizar valor em uma tabela Grid utilizando SqlDataReader
Olá pessoal,
Sou um iniciante em programação. Estou desenvolvendo uma aplicação web utilizando Visual Studio 2016, c# e banco de dados SqlServer. Após implementação da classe abaixo em um controle de estoque, tive o seguinte erro:
- Declarar a classe @Quantidade (Não executa a linha: SqlDataReader dr = com.ExecuteReader();
Obs.: ***Não há erro de sintaxe.
Tenho uma tabela chamada CRUD.tblCalcado que possui 2 campos (´NomeCalcado´) com 1 registro (´Anabela por exemplo´) e outro campo denominado Quantidade .
Toda vez que ocorre uma venda, necessito que a variável Quantidade seja atualizada instantaneamente na tabela Grid que aparece no meu formulário de venda.
Preciso recuperar esse dado e atribuí-lo a uma variável do tipo int.
Tentei algumas soluções, porém sem êxito (O erro persiste)
Abaixo segue o código implementado.
Agradeço antecipadamente e toda ajuda será bem vinda.
private void CARREGAR(string caixa)
{
try
{
sqlcon = new SqlConnection(strCon);
da = new SqlDataAdapter(caixa, sqlcon);
datatable = new DataTable();
da.Fill(datatable);
datatable.Columns[0].ColumnName = "Nome do Calçado";
datatable.Columns[1].ColumnName = "Quantidade";
dataGridView1.DataSource = datatable;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btn_Atualizar_Quantidade (object sender, EventArgs e)
{
strSql = "update CRUD.tblCalcado set Quantidade = Quantidade - @Quantidade where NomeCalcado = @NomeCalcado";
sqlcon = new SqlConnection(strCon);
SqlCommand com = new SqlCommand(strSql, sqlcon);
com.Parameters.Add("@NomeCalcado", SqlDbType.VarChar).Value = (txt_modelo.Text);
com.Parameters.Add("@Quantidade", SqlDbType.Int).Value = Int.Parse(txt_quantidade.Text); // a variável "@Quantidade" está declarada aqui!.
try
{
sqlcon.Open();
com.ExecuteNonQuery();
MessageBox.Show("VENDA REALIZADA COM SUCESSO!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlcon.Close();
ATUALIZAR();
}
public void ATUALIZAR()
{
strCon = "select NomeCalcado, Quantidade from CRUD.tblCalcado order by NomeCalcado ASC";
SqlCommand com = new SqlCommand(strSql, sqlcon);
sqlcon.Open();
SqlDataReader dr = com.ExecuteReader(); // O erro ocorre aqui*** e solicita que seja declarada a variável "@Quantidade"
DataTable datatable = new DataTable();
datatable.Load(dr);
dataGridView1.DataSource = datatable;
}
Sou um iniciante em programação. Estou desenvolvendo uma aplicação web utilizando Visual Studio 2016, c# e banco de dados SqlServer. Após implementação da classe abaixo em um controle de estoque, tive o seguinte erro:
- Declarar a classe @Quantidade (Não executa a linha: SqlDataReader dr = com.ExecuteReader();
Obs.: ***Não há erro de sintaxe.
Tenho uma tabela chamada CRUD.tblCalcado que possui 2 campos (´NomeCalcado´) com 1 registro (´Anabela por exemplo´) e outro campo denominado Quantidade .
Toda vez que ocorre uma venda, necessito que a variável Quantidade seja atualizada instantaneamente na tabela Grid que aparece no meu formulário de venda.
Preciso recuperar esse dado e atribuí-lo a uma variável do tipo int.
Tentei algumas soluções, porém sem êxito (O erro persiste)
Abaixo segue o código implementado.
Agradeço antecipadamente e toda ajuda será bem vinda.
private void CARREGAR(string caixa)
{
try
{
sqlcon = new SqlConnection(strCon);
da = new SqlDataAdapter(caixa, sqlcon);
datatable = new DataTable();
da.Fill(datatable);
datatable.Columns[0].ColumnName = "Nome do Calçado";
datatable.Columns[1].ColumnName = "Quantidade";
dataGridView1.DataSource = datatable;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btn_Atualizar_Quantidade (object sender, EventArgs e)
{
strSql = "update CRUD.tblCalcado set Quantidade = Quantidade - @Quantidade where NomeCalcado = @NomeCalcado";
sqlcon = new SqlConnection(strCon);
SqlCommand com = new SqlCommand(strSql, sqlcon);
com.Parameters.Add("@NomeCalcado", SqlDbType.VarChar).Value = (txt_modelo.Text);
com.Parameters.Add("@Quantidade", SqlDbType.Int).Value = Int.Parse(txt_quantidade.Text); // a variável "@Quantidade" está declarada aqui!.
try
{
sqlcon.Open();
com.ExecuteNonQuery();
MessageBox.Show("VENDA REALIZADA COM SUCESSO!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlcon.Close();
ATUALIZAR();
}
public void ATUALIZAR()
{
strCon = "select NomeCalcado, Quantidade from CRUD.tblCalcado order by NomeCalcado ASC";
SqlCommand com = new SqlCommand(strSql, sqlcon);
sqlcon.Open();
SqlDataReader dr = com.ExecuteReader(); // O erro ocorre aqui*** e solicita que seja declarada a variável "@Quantidade"
DataTable datatable = new DataTable();
datatable.Load(dr);
dataGridView1.DataSource = datatable;
}
Vanderlei Lino
Curtidas 0
Respostas
Fabiano Carvalho
14/10/2017
Voce está declarando a variavel "com" duas vezes, sobretudo, a consulta que imagino que você queira executar no final do código é da variavel strCon e não da váriavel strSql.+
Está bem confuso o código.
Está bem confuso o código.
GOSTEI 0
Jone
14/10/2017
Köp körkort, pass, ((wottenkelly79@gmail.com)) ((whatsapp +237679499813))) ID-kort, födelsecertifikat och annat
Dokument ((wottenkelly79@gmail.com))))
Vi erbjuder körkort, ID-kort, pass, visum, äktenskapsintyg,
dopkort, diplom av alla slag till salu,
Hämta Registrerade Ielts, Toefl & Gre Certat ((wottenkelly79@gmail.com))))
Vi producerar äkta pass av hög kvalitet, körkort, ID-kort. Databas
registrerad och oregistrerad. Alla handlingar är registrerade i respektive
regeringsdatabaser. Vi erbjuder även följande kort: sociala avgifter,
kreditfiler och kreditkort, skolbevis, betygsätter alla i ett helt nytt namn
utfärdas och registreras i regeringens databas system. . Vi använder höga
kvalitetsutrustning och material för att producera äkta och falska dokument. Allt
De hemliga egenskaperna hos dessa dokument är noggrant duplicerade för våra dokument.
Vi är den enda producenten av kvalitetsfalsa och registrerade dokument. Vi erbjuder endast
ursprungliga högkvalitativa registrerade och oregistrerade pass, körkort,
identitetskort, frimärken, Visa, skolor Värdepapper och andra produkter för a
antal länder som USA, Australien, Belgien, Brasilien, Kanada, Italien, Finland
Frankrike, Tyskland, Israel, Mexiko, Nederländerna, Sydafrika, Spanien, Storbritannien och många
fler länder
KONTAKTA
Allmän support: <<<<<<<<<<<<< ((wottenkelly79@gmail.com))))
Kontakta <<<<<<<<<<<<<<< +237679499813
Skype>>>>>>>>>>fastdocuments1
UNIVERSALA PAPPER
Vi kan producera passagerar, körkort, ID-kort och alla andra dokument för de följande länderna
SPANIEN
ENGLAND
ITALIEN
RYSSLAND
usa
KANADA
BRASILIEN
FRANKRIKE
NEDERLÄNDERNA
SVERIGE
NORGE
BELGIEN
KROATIEN
ÖSTERRIKE
BULGARIEN
DANMARK
FINLAND
TYSKLAND
GEORGIEN
UNGERN
ISLAND
IRLAND
LITHAUNIA
LETTLAND
POLEN
PORTUGAL
RUMÄNIEN
SCHWEIZ
AUSTRALIEN
SYDAMERIKANS LÄNDER
Allmän support: >>>>>>>>>> ((wottenkelly79@gmail.com))))
Support >>>>>>>>>>>>>> ((wottenkelly79@gmail.com))))
Kontakta >>>>>>>>>> +237679499813
Registrerat och oregistrerat pass. visum alla, biometriska pass, grader,
körkort, ID-certifikat cards.Training M GCSE, A-nivåer, gymnasium
diplom certifikat, GMAT, MCAT och LSAT examensbevis,
äktenskaps- och dödsintyg, pass och nya identitetspaket, replikeras,
Verkliga grader / diplom från de flesta högskolor runt om i världen
(med mer än 4000 mallar i filen) alla utformade för att se 100% identiska med
original. Anpassad utskrift (om vi inte har mallfilen - bara maila oss tillbaka
och vi kan göra några ändringar / modifieringar som
adresser) .SECOND, medborgarskap, identitet, identifieringsdokument, diplomatisk,
Våra arbetare är tidigare privata utredare, konsulat, högre statliga personal
och erfarna experter med erfarenhet, har vi starka kontakter med
högre personal inom alla områden av fastighetsregistreringsdokument och pass i
utbyte för dessa länder De är kopplade till passagenturen i var och en av
dessa länder och med hjälp av hans anslutningar till alla våra kunder som
kräva ett dokument eller pass länder är 100% säker och garanterad kvitto
av mycket högkvalitativa äkta fastighetsdokument registrerade som inte kan identifieras
som falskt !! Inte ens en anpassad officiell erfarenhet eller maskin förutser aldrig falskt
dokument eftersom dokumentet inte skiljer sig från det faktiska utgivna regeringen! All vår
dokument Registrerade verkliga äkta medborgarskap databaser har sin personliga
data inspelad i databassystemet och 100% läsbar maskin. Känn dig fri att
få detaljerad information om våra tjänster.
Dokument ((wottenkelly79@gmail.com))))
Vi erbjuder körkort, ID-kort, pass, visum, äktenskapsintyg,
dopkort, diplom av alla slag till salu,
Hämta Registrerade Ielts, Toefl & Gre Certat ((wottenkelly79@gmail.com))))
Vi producerar äkta pass av hög kvalitet, körkort, ID-kort. Databas
registrerad och oregistrerad. Alla handlingar är registrerade i respektive
regeringsdatabaser. Vi erbjuder även följande kort: sociala avgifter,
kreditfiler och kreditkort, skolbevis, betygsätter alla i ett helt nytt namn
utfärdas och registreras i regeringens databas system. . Vi använder höga
kvalitetsutrustning och material för att producera äkta och falska dokument. Allt
De hemliga egenskaperna hos dessa dokument är noggrant duplicerade för våra dokument.
Vi är den enda producenten av kvalitetsfalsa och registrerade dokument. Vi erbjuder endast
ursprungliga högkvalitativa registrerade och oregistrerade pass, körkort,
identitetskort, frimärken, Visa, skolor Värdepapper och andra produkter för a
antal länder som USA, Australien, Belgien, Brasilien, Kanada, Italien, Finland
Frankrike, Tyskland, Israel, Mexiko, Nederländerna, Sydafrika, Spanien, Storbritannien och många
fler länder
KONTAKTA
Allmän support: <<<<<<<<<<<<< ((wottenkelly79@gmail.com))))
Kontakta <<<<<<<<<<<<<<< +237679499813
Skype>>>>>>>>>>fastdocuments1
UNIVERSALA PAPPER
Vi kan producera passagerar, körkort, ID-kort och alla andra dokument för de följande länderna
SPANIEN
ENGLAND
ITALIEN
RYSSLAND
usa
KANADA
BRASILIEN
FRANKRIKE
NEDERLÄNDERNA
SVERIGE
NORGE
BELGIEN
KROATIEN
ÖSTERRIKE
BULGARIEN
DANMARK
FINLAND
TYSKLAND
GEORGIEN
UNGERN
ISLAND
IRLAND
LITHAUNIA
LETTLAND
POLEN
PORTUGAL
RUMÄNIEN
SCHWEIZ
AUSTRALIEN
SYDAMERIKANS LÄNDER
Allmän support: >>>>>>>>>> ((wottenkelly79@gmail.com))))
Support >>>>>>>>>>>>>> ((wottenkelly79@gmail.com))))
Kontakta >>>>>>>>>> +237679499813
Registrerat och oregistrerat pass. visum alla, biometriska pass, grader,
körkort, ID-certifikat cards.Training M GCSE, A-nivåer, gymnasium
diplom certifikat, GMAT, MCAT och LSAT examensbevis,
äktenskaps- och dödsintyg, pass och nya identitetspaket, replikeras,
Verkliga grader / diplom från de flesta högskolor runt om i världen
(med mer än 4000 mallar i filen) alla utformade för att se 100% identiska med
original. Anpassad utskrift (om vi inte har mallfilen - bara maila oss tillbaka
och vi kan göra några ändringar / modifieringar som
adresser) .SECOND, medborgarskap, identitet, identifieringsdokument, diplomatisk,
Våra arbetare är tidigare privata utredare, konsulat, högre statliga personal
och erfarna experter med erfarenhet, har vi starka kontakter med
högre personal inom alla områden av fastighetsregistreringsdokument och pass i
utbyte för dessa länder De är kopplade till passagenturen i var och en av
dessa länder och med hjälp av hans anslutningar till alla våra kunder som
kräva ett dokument eller pass länder är 100% säker och garanterad kvitto
av mycket högkvalitativa äkta fastighetsdokument registrerade som inte kan identifieras
som falskt !! Inte ens en anpassad officiell erfarenhet eller maskin förutser aldrig falskt
dokument eftersom dokumentet inte skiljer sig från det faktiska utgivna regeringen! All vår
dokument Registrerade verkliga äkta medborgarskap databaser har sin personliga
data inspelad i databassystemet och 100% läsbar maskin. Känn dig fri att
få detaljerad information om våra tjänster.
GOSTEI 0
Vanderlei Lino
14/10/2017
Fabiano, agradeço pela cooperação!
Deixa eu te explicar. O controle acima, exatamente como está aí, funciona com o Visual Studio 12 e não funciona com o Visual 16. No Visual 12 não ocorre o erro (ou seja, o código não pede para declarar a variável @quantidade.
Será um bug do Visual Studio. Eu reproduzi o mesmo código nas 02 versões!!!
Deixa eu te explicar. O controle acima, exatamente como está aí, funciona com o Visual Studio 12 e não funciona com o Visual 16. No Visual 12 não ocorre o erro (ou seja, o código não pede para declarar a variável @quantidade.
Será um bug do Visual Studio. Eu reproduzi o mesmo código nas 02 versões!!!
GOSTEI 0