2016-10-13 6 views
0
conn.Open(); 
string sql = "Update tbl_return set DateReturned = @dreturn,Penalty = @penalty,[email protected] where [email protected]"; 
daysoverdue = (dateTimePicker2.Value - dateTimePicker3.Value).Days; 

penalty = daysoverdue * fine; 
txtfine.Text = penalty.ToString(); 
txtdoverdue.Text = daysoverdue.ToString(); 
MySqlCommand sda = new MySqlCommand(sql, conn); 

sda.Parameters.AddWithValue("@time", time); 
sda.Parameters.AddWithValue("@penalty", penalty); 
sda.Parameters.AddWithValue("@daysoverdue", daysoverdue); 
sda.Parameters.AddWithValue("@dreturn", datertrnd); 
sda.Parameters.AddWithValue("@id", lblid.Text); 

sda.ExecuteNonQuery(); 
conn.Close(); 

MessageBox.Show("Book has been Returned"); 

ここで、期限切れの本の罰金を計算するコードです。期限前に本を返すと、負の数になります。私はそれが期日の後に返されるときに0にします。 Plsは私を助けます。ありがとう!datetimepickerを使用した罰金の計算C#

+0

計算上、またはSQLに問題がありますか?その部分を作業したら、その部分を取り除くことができます。あなたの変数の値は何ですか? –

+0

int penalty; int fine = 20; int daysoverdue; – mkltsss

+0

コメントに値を入れないでください - あなたの質問を編集してください。 –

答えて

1
daysoverdue = (dateTimePicker2.Value - dateTimePicker3.Value).Days; 
if(daysoverdue < 0) 
    daysoverdue = 0 

//in this case your penalty will be 0. 
+0

以下であれば、SQLの部分が適切かどうか質問してください。 'daysoverdue = Math.max(0、daysoverdue);' –

+0

ありがとうございます。 :)))) – mkltsss

関連する問題