2
我做了一个简单的数据库应用程序,但是我在添加最后一列时遇到了问题。金额栏需要从PRODUCTS表中填入Yearly Premium,然后根据每年(1),每月(12)或每两周(26)支付的金额除以1,12或26。我的查询出现问题
我假设我需要使用ProductID加入SALES和PRODUCTS表,但无法弄清楚如何填充金额列取决于他们如何支付(F/M/Y)。
下面是程序中每个表格的两个屏幕截图,以及此时用于填充“主要销售”表单的代码。
private void DisplaySales()
{
string selectQuery;
selectQuery = "SELECT * FROM Sales";
List<Sale> saleList = new List<Sale>();
try
{
// Automatically open and close the connection
using (var conn = ConnectionManager.DatabaseConnection())
using (var cmd = new SqlCommand(selectQuery, conn))
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
//Define the list items
var sale = new Sale(
int.Parse(rdr["SaleID"].ToString()),
int.Parse(rdr["CustomerID"].ToString()),
int.Parse(rdr["ProductID"].ToString()),
rdr["Payable"].ToString(),
DateTime.Parse(rdr["StartDAte"].ToString()));
saleList.Add(sale);
}
dgvSales.DataSource = saleList;
}
}
catch (Exception ex)
{
MessageBox.Show("Unsuccessful" + ex);
}
}
感谢您对满口关于我的问题的任何帮助。
感谢您的评论。这是完全意义上的。我试图实现您的解决方案,现在正在获取此错误。不知道为什么我把它变成了一个INT,并且我创造了一个新的课程。 https://i.imgur.com/RjJBldq.png 这就是我实现你的代码的方式。 https://pastebin.com/xCrWLuq7 我有一种感觉,这个错误是由于它只能从左到右读一次或什么东西。 – Rick1990
如果您正在讨论从左到右阅读专栏,我不认为这会是。也许有些事情与rdr列的数据类型有关。我会假设来自数据库的INT和varchar列自动为int和字符串类型 – cjkeilig
他妈的人。谢谢我实际上已经发现,在输入此评论之前,我需要在大约2分钟前使用小数。自从我拿起这个项目已经有一段时间了,并且非常生锈。知道了所有的工作,现在欢呼! – Rick1990