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