【发布时间】:2015-06-19 12:43:11
【问题描述】:
我的查询生成器有问题。我有一个要过滤的datagridview。我想允许按“姓名、姓氏、日期”进行搜索。这是我的 SQL 查询
SELECT exDate, exName, exSurname FROM examines
WHERE (exDate = @Param1) AND (exName = @Param2) AND (exSurname = @Param3)
这是我“调用”查询的 C# 代码
private void button1_Click(object sender, EventArgs e)
{
try
{
this.examinesTableAdapter.FillBy(this.dbSpinDataSet.examines, dateTimePicker1.Value, textBox2.Text, textBox3.Text);
}
catch (SystemException ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
在 VS 中我得到 2 错误说:
"...Project1.dbSpinDataSetTableAdapters.examinesTableAdapter, string, string, string)' 有一些无效参数。" “...无法从 'System.Windows.Forms.DateTimePicker' 转换为 'string'。”
我知道错误在哪里,但我不知道如何解决它。我的查询是在项目数据集中的“查询生成器”中编写的。我去了 FILTER 列的 exDate、exName 和 exSurname 并写了 ?(问号)。查询生成器自动将其转换为上述形式 "= @Param1"、"= @Param2" 和 "= @Param3"。
我知道我不能将 DateTime 视为字符串,但不知道在查询生成器的 FILTER 列中写入什么内容才能使我的代码正常工作。
【问题讨论】:
-
您的数据库中的
exDate列是什么列类型? -
确保 QueryBuilder 中的 exDate 定义也定义为 Date(或 DateTime)类型。然后应该将您的 TableAdapter 的 FillBy 更改为 (tableadapter, datetime, string, string)
-
您无法在查询生成器中定义变量,因为表是使用向导导入的
标签: c# date query-builder