【问题标题】:database query questions or other solutions for comparing data between 2 tables用于比较 2 个表之间的数据的数据库查询问题或其他解决方案
【发布时间】:2012-07-12 15:41:06
【问题描述】:

我正在使用 Visual Studio 2010 创建 Windows 应用程序表单。 目前,我处于这种情况:

我允许用户将商品添加到系统中,每个商品可能有不同的品牌、成本和供应商以及不同客户的销售价格。

例如, 项目 1,名称:ABC,品牌:TIM 和 Item2,名称:ABC,品牌:LD。

当用户想要在Item1中插入成本和供应商信息时,当他们点击“ShowCost”按钮时,会弹出另一个Windows Form供用户填写。我打算使用DataGridView .我打算使用商品名称和品牌来确定商品的成本和售价

所以这是我的问题, 如何设置查询或其他解决方案,以检查用户输入的商品名称和品牌时,会显示特定商品的成本和价格?我需要写什么查询?

我创建了 3 个数据库表,它们是 ItemInfo(Name, Brand, etc), CostList(Name, Brand, SuppliersName, Cost) 和 SellingPrice(Name, Brand, CustomersName, SellingPrice)。 如何比较 ItemInfo 表中的数据以在 CostList 中显示数据?

感谢您的帮助。

【问题讨论】:

  • 我在谷歌上搜索了这些信息,但没有一个能解决我的问题。
  • 很难准确地弄清楚您要达到的目标。你是什​​么后端数据库?是 MS Access 还是 SQL?您可能需要为此项目提供一个连接表,因为一个项目可以有多个供应商,但每个供应商只有一个唯一的项目。正确设置数据库是您的第一步。如果我的想法是正确的,您可以拥有 20 家不同供应商的 1 件商品?
  • sql,我需要知道的是,当我单击“显示成本”按钮时,如何检查成本列表是否适用于特定项目,而不是其他项目。我正在使用 ItemInfo 名称和品牌来识别商品。
  • 没错,一件商品可能有20个不同的供应商,当然,不同的供应商可能有不同的价格。我想了很长时间,我不知道怎么做,因为我还是新手。
  • 从你的问题和cmets我相信你仍然没有明确定义你的数据库结构、表、字段、主键等。看看AdventureWorks database provided by Miscrosoft。对于每个版本的 MSSQL Server,它都有多个版本。您将了解如何设置一个基本的电子商务数据库,包括产品、订单、销售等。

标签: c# sql


【解决方案1】:

如果您使用的是数据库,则应考虑使用主键。这样,您可以将有关某个项目的信息存储在另一个表中。在所有三个表中,您都使用名称和品牌。我会像这样对我的表进行建模:

项目

  • ItemID(将此字段设为自动递增整数字段)
  • 项目名称
  • 品牌
  • 供应商 ID
  • 价格

客户

  • 客户 ID
  • 客户名称
  • 折扣百分比
  • 电话号码

供应商

  • 供应商 ID
  • 供应商名称

在客户表中,供应商ID 字段是唯一编号。因此,当您想引用供应商时,您只需填写供应商ID。例如,在 items 表中,ItemID 是项目的唯一标识符。供应商 ID 字段是指供应商表中的供应商 ID 字段。为了确保您的数据模型保持一致,我建议您使用外键约束。这样可以确保您不能填写任何无效的 ID

这是一部短片,解释了一些SQL basics

【讨论】:

  • 感谢您提供的信息,我将再次重组我的数据库,如果我有任何问题可以再次寻求您的帮助吗?
  • 所以,如果我现在有 2 个表,以 ItemID 作为主键的 ItemInfo,然后是另一个表 CostLists,用于显示依赖于 ItemInfo ItemID 的项目成本和供应商名称,我应该将 ItemID 放入 CostList还?以及如何将它们链接在一起?
  • 是的,Costlist 应该包含一个项目 ID。否则你不能说物品 A 花费 x。您可以使用 Joins w3schools.com/sql/sql_join.asp 将表格链接在一起
  • ok last question, SELECT costprice.costid, costprice.suppliername, costprice.costprice FROM costprice INNER JOIN partsinfo ON costprice.partsid = partsinfo.partsid WHERE CostPrice.PartsID = (textbox1.text from another form)如何将来自另一个表单的 textbox1.text 传递给查询???
  • 你几乎在那里 ;) string qry = ¨SELECT costprice.costid, costprice.suppliername, costprice.costprice FROM costprice INNER JOIN partsinfo ON costprice.partsid = partsinfo.partsid WHERE partsinfo.partname = '" + textbox1.text + "'"; 例如,如果您的文本框的值 = "screwdriver" 那么您的查询将如下所示:SELECT costprice.costid, costprice.suppliername, costprice.costprice FROM costprice INNER JOIN partsinfo ON costprice.partsid = partsinfo.partsid WHERE partsinfo.partname = 'Screwdriver'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 2021-06-02
  • 1970-01-01
相关资源
最近更新 更多