【问题标题】:Adding new data to one table and delete count from other table将新数据添加到一个表并从另一个表中删除计数
【发布时间】:2017-07-07 08:22:29
【问题描述】:

我有 2 张桌子,(tableProducts,tableSpent) 我想做“当我在 tableSpent 添加新的用过的产品时,NumberofTotal = NumberofTotal - SpentProductnumber)

例如 Total Products 上有 3 个产品

SEQDSD-PENCIL-15

QWEWQD-BOOK-10

ASGAGG-SHARPENER-45

我将在 SpentProduct Table 中添加这些信息

ASGAGG - 磨刀器 -20 - 学校用

我想从 TotalProducts 中删除这个数字 ( 20 ) 所以总产品必须看起来像

SEQDSD-PENCIL-15

QWEWQD-BOOK-10

ASGAGG-SHARPENER-25

这是我在 Spent 表中添加用过产品的代码 但是Idk如何从总产品表中删除此计数 当我点击 button1 时,它必须在 SpentTable 添加 4 个文本框的数据 并且它必须从 TotalProducts 名称中删除该数字

我该怎么做?

这是我的添加代码。//名称和行数是翻译的不同原因:)

        if (conn.State == ConnectionState.Closed)
            conn.Open();

        string kayit = "insert into projeSarfBase(urunKodu,urunAdi,sarfAdet,projeKodu,projeAdi) values (@urunKodu,@urunAdi,@sarfAdet,@projeKodu,@projeAdi)";


        SqlCommand komut = new SqlCommand(kayit, conn);

        komut.Parameters.AddWithValue("@urunKodu", textBox1.Text);
        komut.Parameters.AddWithValue("@urunAdi", textBox2.Text);

        komut.Parameters.AddWithValue("@sarfAdet", textBox3.Text);
        komut.Parameters.AddWithValue("@projeKodu", textBox4.Text);
        komut.Parameters.AddWithValue("@projeAdi", textBox5.Text);


        komut.ExecuteNonQuery();

        conn.Close();

【问题讨论】:

  • 如果总产品只是消费产品的总和,那么它真的不应该有自己的表,你应该在需要时根据使用的表数据动态计算数据。
  • no 它显示 product 有多少产品。我的意思是每种产品的总数,铅笔,书,纸...... +50 产品
  • 代码包括使用SqlCommand 插入但你有dataGridView 标签所以我不确定你在哪里插入有困难?到 SQL 表或到dataGridView?
  • 您的意思是它显示了您库存中每种产品的数量(例如,我们有 45 个磨刀器)吗?“用完”是指“我们使用/放弃了其中的 20 个?)跨度>
  • @JeffUK 是的,例如:我们在学校花了 20 个磨刀器,所以我们给了它,我们现在有 25 个,我必须在 TotalProduct 表上看到 25 个

标签: c# sql datagridview


【解决方案1】:

商业产品处理此问题的方式如下。

创建一个“交易”表。如下

Create Table InventTransactions (
ID int IDENTITY(1,1) PRIMARY KEY,
ProductID NVarChar(25),
Reference NVarchar(25),
TransactionDate datetime,
Quantity int)

当你想记录购买的产品时,你将数量设置为正值

insert into InventTransactions (ProductID,Reference,TransactionDate,Quantity)
Values ('SHARPENER','Purchase Order #1',getDate(),45);

当您“消费”产品时,您发布的数量为负数

insert into InventTransactions (ProductID,Reference,TransactionDate,Quantity)
Values ('SHARPENER','ForSchool',getDate(),-20);

在任何时候,您只需将所有数量相加即可得到结果

总产品:

Select ProductID, sum(quantity) from InventTransactions group by ProductID
Having SUM(Quantity)>0

这种方法提高了性能(您只需在每笔交易中标记一个条目),并为您提供有关库存来源和去向的永久记录。它还允许您就数据提出更有趣的问题,例如“X 日期的库存是多少”或“我每周使用多少这个项目”(通过日期过滤)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2012-09-10
    • 2010-12-22
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多