C# 如何使用SELECT命令获取新添加列的列值
我使用Windows窗体从创建了客户订单。客户可以使用其ID登录。登录后,DataGridView将显示articles表,其中包含可用和准备订购的商品信息。数据来自SQL数据库。在下面,您可以查看创建表的方法以及表的外观。如您所见,在将数据加载到表中之后,我向表中添加了一个额外的列(“Bestellmenge”),即客户希望订购的物品数量。金额将由客户输入。 在他输入他想要订购的物品的金额并单击表单上的订购按钮后,我希望DataGridView仅显示一个包含他订购的物品的表,其中包含物品id、名称、订购金额、价格和所有价格(针对每件物品)列。要计算综合价格,我需要数量和价格。但是,订购金额不是SQL数据库中表的一部分,它是使用附加列创建的。我的问题是,是否有可能使用SQLSELECT命令获取金额并计算全面价格C# 如何使用SELECT命令获取新添加列的列值,c#,sql,select,datagridview,datatable,C#,Sql,Select,Datagridview,Datatable,我使用Windows窗体从创建了客户订单。客户可以使用其ID登录。登录后,DataGridView将显示articles表,其中包含可用和准备订购的商品信息。数据来自SQL数据库。在下面,您可以查看创建表的方法以及表的外观。如您所见,在将数据加载到表中之后,我向表中添加了一个额外的列(“Bestellmenge”),即客户希望订购的物品数量。金额将由客户输入。 在他输入他想要订购的物品的金额并单击表单上的订购按钮后,我希望DataGridView仅显示一个包含他订购的物品的表,其中包含物品id、
private string tableName = "Artikel";
private bool update = false;
DataGridTableStyle dgTabStyle = new DataGridTableStyle();
string sqlCmd = "SELECT * FROM artikel";
private void ArtikelLaden()
{
DataTable thisTable = dataSet.Tables[tableName];
if (thisTable != null)
{
thisTable.Clear();
}
try
{
odbcDataAdapter.SelectCommand = new OdbcCommand(sqlCmd, odbcConnection);
odbcDataAdapter.Fill(dataSet, tableName);
dataGrid.SetDataBinding(dataSet, tableName);
if (!update)
{
//Neue Spalte Bestellmenge hinzufügen:
dataSet.Tables[tableName].Columns.Add("bestellmenge");
dgTabStyle.MappingName = tableName;
DataGridTextBoxColumn dgtCol1 = new DataGridTextBoxColumn();
dgtCol1.MappingName = "id";
dgtCol1.ReadOnly = true;
dgtCol1.HeaderText = "Artikel-ID";
DataGridTextBoxColumn dgtCol2 = new DataGridTextBoxColumn();
dgtCol2.MappingName = "name";
dgtCol2.ReadOnly = true;
dgtCol2.HeaderText = "Artikel";
dgtCol2.Width = 100;
DataGridTextBoxColumn dgtCol3 = new DataGridTextBoxColumn();
dgtCol3.MappingName = "beschreibung";
dgtCol3.ReadOnly = true;
dgtCol3.HeaderText = "Beschreibung";
dgtCol3.Width = 100;
DataGridTextBoxColumn dgtCol4 = new DataGridTextBoxColumn();
dgtCol4.MappingName = "groesse";
dgtCol4.ReadOnly = true;
dgtCol4.HeaderText = "Größe";
DataGridTextBoxColumn dgtCol5 = new DataGridTextBoxColumn();
dgtCol5.MappingName = "farbe";
dgtCol5.ReadOnly = true;
dgtCol5.HeaderText = "Farbe";
DataGridTextBoxColumn dgtCol6 = new DataGridTextBoxColumn();
dgtCol6.MappingName = "preis";
dgtCol6.Format = "c";
dgtCol6.Alignment = HorizontalAlignment.Center;
dgtCol6.ReadOnly = true;
dgtCol6.HeaderText = "Preis";
DataGridTextBoxColumn dgtCol7 = new DataGridTextBoxColumn();
dgtCol7.MappingName = "menge";
dgtCol7.Alignment = HorizontalAlignment.Center;
dgtCol7.ReadOnly = true;
dgtCol7.HeaderText = "lieferbar";
DataGridTextBoxColumn dgtCol8 = new DataGridTextBoxColumn();
dgtCol8.MappingName = "bestellmenge";
dgtCol8.NullText = "";
dgtCol8.Alignment = HorizontalAlignment.Center;
dgtCol8.HeaderText = "Bestellmenge";
dgtCol8.Width = 100;
dgTabStyle.GridColumnStyles.Add(dgtCol1);
dgTabStyle.GridColumnStyles.Add(dgtCol2);
dgTabStyle.GridColumnStyles.Add(dgtCol3);
dgTabStyle.GridColumnStyles.Add(dgtCol4);
dgTabStyle.GridColumnStyles.Add(dgtCol5);
dgTabStyle.GridColumnStyles.Add(dgtCol6);
dgTabStyle.GridColumnStyles.Add(dgtCol7);
dgTabStyle.GridColumnStyles.Add(dgtCol8);
dataGrid.TableStyles.Add(dgTabStyle);
update = true;
// default-Button ändern:
this.AcceptButton = this.buttonBestellen;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.GetType() + Environment.NewLine + ex.Message);
}
}
您是否询问如何计算select语句中两列的乘积,例如
| quantity| price|
|---------|------|
| 2 | 4 |
| 5 | 8 |
| 7 | 1 |
从示例中选择数量、价格、值1*2作为总计
| quantity | price | total |
|----------|--------|-------|
| 2 | 4 | 8 |
| 5 | 6 | 30 |
| 7 | 8 | 56 |
事实上是这样的,但是,在您的示例中,quantity列不是数据库中表的一部分。它是在创建表之后添加的。假设所有列都是数据库中articles表的一部分,那么命令将是从articles中选择a.quantity、a.price value1*value2作为总计。但在这种情况下,a.quantity不存在,因为客户将添加此值。您如何访问它?