Я пытаюсь отобразить сообщение об ошибке, когда пользователь, отправляющий данные за ту же дату, не должен этого делать.Я не слишком уверен в том, как это сделать, но уже нанес удар, но не работает.я не уверен, как заставить читателя работать.
public string conString = "***ConnectionString***";
private void mileage_submit_btn_Click(object sender, EventArgs e)
{
if (location_comboBox.Text == "" || mileage_textbox.Text == "" || other_location_textBox.Text == "" || other_mileage_textBox.Text == "")
{
MessageBox.Show("Fill all required fields", ("Validation"), MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
SqlConnection con = new SqlConnection(conString);
con.Open();
if (con.State == System.Data.ConnectionState.Open)
{
string query = "INSERT INTO Mileage_Table(eb_number , Date, Location, Mileage, Other_location, Other_Miles, Total_Miles) values(@eb_number, @Date, @Location, @Mileage, @Other_location,@Other_Miles, @Total_Miles)";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.Add("@eb_number", SqlDbType.Text).Value = Username_Mileage_lbl.Text.ToString();
cmd.Parameters.Add("@Location", SqlDbType.Text).Value = location_comboBox.Text.ToString();
cmd.Parameters.Add("@Mileage", SqlDbType.Decimal).Value = Decimal.Parse(mileage_textbox.Text);
cmd.Parameters.Add("@Other_Location", SqlDbType.Text).Value = other_location_textBox.Text.ToString();
cmd.Parameters.Add("@Other_Miles", SqlDbType.Decimal).Value = Decimal.Parse(other_mileage_textBox.Text);
cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = DateTime.Parse(Mileage_dateTimePicker.Text).ToString("dd-MM-yyyy");
decimal b = Convert.ToDecimal(mileage_textbox.Text);
decimal c = Convert.ToDecimal(other_mileage_textBox.Text);
cmd.Parameters.Add("@Total_Miles", SqlDbType.Decimal).Value = Convert.ToString(b + c);
using (var reader = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow))
{
while (reader.Read())
{
if (reader.HasRows == true)
{
MessageBox.Show("Date = " + reader[7].ToString() + "Already Exists");
}
}
}
cmd.ExecuteNonQuery();
decimal TotalMiles = b + c;
MessageBox.Show(TotalMiles + " Miles has been Logged");
con.Close();