我使用这个代码将数据插入到一个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。应该选择SUM(SQuantity)AS'Total'... –
您试图在'Calculate()'方法中将日期作为字符串。为什么不像你在插入中那样使用日期参数?你已经知道这是有效的。 –