Atualizar valor em uma tabela Grid utilizando SqlDataReader

C#

14/10/2017

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;
}
Vanderlei Lino

Vanderlei Lino

Curtidas 0

Respostas

Fabiano Carvalho

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.
GOSTEI 0
Jone

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.
GOSTEI 0
Vanderlei Lino

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!!!
GOSTEI 0
POSTAR