私は単純なデータベースアプリケーションを作っていますが、最後の1つの列に追加するのに問題があります。金額にはPRODUCTSテーブルのYearly Premiumを入力し、Yearly(1)、Monthly(12)、またはFortnightly(26)のいずれかを支払うかどうかによって、1、12または26で割ります。私の質問に悩む
ProductIDを使用してSALESテーブルとPRODUCTSテーブルに参加する必要があると仮定しますが、支払い方法(F/M/Y)に応じて金額列を設定する方法を理解することはできません。
以下は、プログラムの各テーブルの2つのスクリーンショットと、現時点でメインセールフォームに入力するコードです。
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 このエラーは、左から右に1回だけ読み取ることができるために発生したと感じています。 – Rick1990
左から右の列を読むことについて話しているなら、それはそうではないと思います。たぶん、rdr列のデータ型に何かが起こっている可能性があります。私はINTとデータベースから来るvarchar列が自動的にint型と文字列型であると思います。 – cjkeilig
fuck man。ありがとう、私は実際にこのコメントを入力する約2分前に小数点を使用する必要があることを理解しました。私はこのプロジェクトを拾い、非常に錆びているので、しばらくしています。それはすべて今働いて歓声を得た! – Rick1990