通过存储过程从c#更新数据库表

时间:2015-10-11 13:19:56

标签: c# mysql sql-server database stored-procedures

我需要在这里从c#代码更新我的数据库表。 我有一个bindingList,我在其中进行一些需要在数据库中更新的计算。我还存储了更新查询的过程。当我运行mu app时,我的数据库中的行数将使用最后一行的记录进行更新。我的问题是为什么不更新所有行,为什么只是在所有行的位置更新表的最后一行?请帮助我,我在这里呆了两天。 这是代码

1 个答案:

答案 0 :(得分:1)

你应该在循环中声明p。如果在循环外声明它,则添加到列表中的所有p都将具有相同的值

    foreach (var stavka in priemnicaStavki)
    {
        PriemStavka p = new PriemStavka();
        p.ArtKatBrMat = stavka.ArtKatBrMat;

你也没有使用parm,你不需要它

public int EditPriemStavkaAllByKurs(PriemStavka entity)

存储过程也需要更新。您需要一个where子句来查找要更新的记录而不是所有记录。我假设第一列是更新列表中的主键是主键。您可能需要稍微修改程序

ALTER PROCEDURE [citaj].[usp_EditPriemStavkaKurs2]  

@SlogID  int = null, @OdobrenieRBr  int = null, @ZaklucokBroj nvarchar(50) = null, @DokRBr  int = null, @DokumentBroj nvarchar(50) = null, @DokumentDatum datetime = null, @FakturaU5RBr  int = null, @ArtRBrMat  int = null, @ArtKatBrMat nvarchar(50) = null, @ArtNazivMat nvarchar(255) = null, @TarBr nvarchar(10) = null, @Kol char(50) = null, @EdMer nvarchar(16) = null, @EdMerCar nvarchar(3) = null, @Cena char(50) = null, @Valuta nvarchar(255) = null, @Vrednost char(50) = null, @Sirina char(50) = null, @M2 char(50) = null, @ZemjaPoteklo nvarchar(255) = null, @NaimRBr  int = null, @DavackiEdinica char(50) = null, @Davacki char(50) = null, @Korisnik  int = null, @Tezina char(50) = null, @SpecTez char(50) = null, @VrednostBruto char(50) = null, @ZaklucokBrojPrenos nvarchar(50) = null, @StatVred char(50) = null, @KoletiS nvarchar(50) = null, @KoletiBr char(50) = null, @TezinaBruto char(50) = null, @CarSt char(50) = null, @Carina char(50) = null, @Danok char(50) = null, @StavkaRBr  int = null

as

UPDATE PriemiSt SET   ZaklucokBroj = @ZaklucokBroj,  DokRBr = @DokRBr,  DokumentBroj = @DokumentBroj,  DokumentDatum = @DokumentDatum,  FakturaU5RBr = @FakturaU5RBr,  ArtRBrMat = @ArtRBrMat,  ArtKatBrMat = @ArtKatBrMat,  ArtNazivMat = @ArtNazivMat,  TarBr = @TarBr,  Kol = @Kol,  EdMer = @EdMer,  EdMerCar = @EdMerCar,  Cena = @Cena,  Valuta = @Valuta,  Vrednost = @Vrednost,  Sirina = @Sirina,  M2 = @M2,  ZemjaPoteklo = @ZemjaPoteklo,  NaimRBr = @NaimRBr,  DavackiEdinica = @DavackiEdinica,  Davacki = @Davacki,  Korisnik = @Korisnik,  Tezina = @Tezina,  SpecTez = @SpecTez,  VrednostBruto = @VrednostBruto,  ZaklucokBrojPrenos = @ZaklucokBrojPrenos,  StatVred = @StatVred,  KoletiS = @KoletiS,  KoletiBr = @KoletiBr,  TezinaBruto = @TezinaBruto,  CarSt = @CarSt,  Carina = @Carina,  Danok = @Danok,  StavkaRBr = @StavkaRBr

where OdobrenieRBr = @OdobrenieRBr