在 SELECT 查询中的 WHERE 之后使用多个参数

Using multiple Parameters after WHERE in SELECT query

我试图避免填充 table 并使用多个查询和语句来 select 来自 DataGridView 的表示假期的特定 ID。

我正在尝试做的事情是否可行?

目前我得到的代码如下:

string HolidayIDQuery = "SELECT ID FROM [Holiday] WHERE PayrollNo=@PayrollNo + StartDate=@StartDate + EndDate=@EndDate"; 
OleDbCommand GetHolID = new OleDbCommand(HolidayIDQuery, conn);
GetHolID.Parameters.AddWithValue("@PayrollNo", GotPayroll);
GetHolID.Parameters.AddWithValue("@StartDate", OleDbType.Date).Value = Convert.ToDateTime(dataGridView1.Rows[LineIndex].Cells[1].Value);
GetHolID.Parameters.AddWithValue("@EndDate", OleDbType.Date).Value = Convert.ToDateTime(dataGridView1.Rows[LineIndex].Cells[2].Value);
int HolID = Convert.ToInt32(GetHolID.ExecuteScalar());

我在底线上收到此错误。

Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll

Additional information: Data type mismatch in criteria expression.

您可以在 WHERE 子句中使用 AND

WHERE PayrollNo=@PayrollNo AND StartDate=@StartDate AND EndDate=@EndDate;

您可能还想尝试 SQL 教程:https://www.google.com/webhp?q=sql%20tutorial

您的查询似乎有误。而不是

SELECT ID 
FROM [Holiday] 
WHERE PayrollNo=@PayrollNo + StartDate=@StartDate + EndDate=@EndDate

试试这个:

SELECT ID FROM [Holiday] 
WHERE PayrollNo=@PayrollNo 
      AND StartDate=@StartDate 
      AND EndDate=@EndDate"