Я использую этот код для вставки данных в файл база данных Accessзапрос сумма столбца во время точной даты C#
decimal quantity;
if (!Decimal.TryParse(textBox9.Text, out quantity))
MessageBox.Show("Invalid number");
else
{
using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data source=|DataDirectory|\\crepeDB.accdb;"))
{
conn.Open();
string query = @"insert into Sales (Sdate,SQuantity)
values (@date, @qta)";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(query, conn);
cmd.Parameters.Add("@date", OleDbType.Date).Value = dateTimePicker1.Value;
cmd.Parameters.Add("@qta", OleDbType.Decimal).Value = quantity;
cmd.ExecuteNonQuery();
}
}
Теперь я хочу, чтобы получить общий SQuantity на сегодняшний день, так что я использовал этот код, но он продолжает давать мне ошибка
public void Calculate()
{
using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data source=|DataDirectory|\\crepeDB.accdb;"))
{
conn.Open();
string query = @"select SQuantity SUM(SQuantity) AS 'Total' From Sales where Sdate = '"+ dateTimePicker1.Value +"'";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(query, conn);
cmd.ExecuteNonQuery();
textBox1.Text = cmd.ExecuteScalar().ToString();
}
}
private void frmShiftEnd_Load(object sender, EventArgs e)
{
Calculate();
}
Какие ошибки? http://stackoverflow.com/help/how-to-ask – user5226582
Я считаю, что вы должны вывести SQuantity из запроса в select. Должен быть выбран SUM (SQuantity) AS 'Total' ... –
Вы пытаетесь указать дату в виде строки в методе 'Calculate()'. Почему бы не использовать параметр для даты, как вы делали в вставке? Вы уже знаете, что работает. –