0
"SELECT SUM(Cost) FROM Repair WHERE RepairDate BETWEEN '" + startdate + "' AND '" + enddate + "'";
모두 안녕하세요. 매개 변수가있는 쿼리로 변경하는 것 외에이 SQL에 문제가 있습니까? 내가 ExecuteScalar는하려고 할 때,이 기준에서 나에게 표현의 오류 데이터 형식이 일치를 제공합니다 : 내 창에서내 WCF 서비스 응용 프로그램의 SQL
public int TotalRepairCost(DateTime startdate, DateTime enddate)
{
int total;
OleDbConnection oleConn = new OleDbConnection(connString);
oleConn.Open();
string sql = "SELECT SUM(Cost) FROM Repair WHERE RepairDate BETWEEN '" + startdate + "' AND '" + enddate + "'";
OleDbCommand cmd = new OleDbCommand(sql, oleConn);
total = (int)cmd.ExecuteScalar();
oleConn.Close();
return total;
}
버튼
private void btnTotal_Click(object sender, EventArgs e)
{
DateTime startdate = Convert.ToDateTime(txtStartDate.Text);
DateTime enddate = Convert.ToDateTime(txtEndDate.Text);
lblTotal.Text = client.TotalRepairCost(startdate, enddate).ToString();
}
내 생각에 날짜 형식에 문제가있는 것 같습니다. – germi
@germi 감사합니다 germi, 내 데이터베이스의 RepairDate 열에 대한 데이터 형식은 날짜/시간이며, 날짜를 입력 할 때 시작일은 "10/10/2012"이고 종료일은 "10/10/2013"입니다. , "10/10/2012 10:00:00 AM" – Mindless
@yzwboy와 같은 다른 옵션도 시도했습니다.이 쿼리를 사용하여보십시오 : 'string sql = "SELECT SUM (Cost) FROM RepairDate BETWEEN'"+ startdate.ToString (" yyyy-MM-dd HH : mm : ss ") +" 'AND'+ enddate.ToString ("yyyy-MM-dd HH : mm : ss") + " '";' – kmatyaszek