我试图将多个参数传递给Visual Studio中的fill Tableadapter方法,但当我在程序中运行该方法或操作时,收到“该方法或操作未实现”错误。我对C#有一个模糊的理解,但还在学习。VS在代码中没有发现任何错误,当我在DataSet设计器中测试它时,SQL查询工作得很好。代码对我来说是有意义的,我觉得它应该是有效的,但我显然遗漏了一些东西,我就是弄不明白它是什么。
这是时间表程序的开始。应该发生的情况是,当用户单击搜索按钮时,它运行查询并显示结果。该查询获取从下拉框中选择的员工姓名,并显示该员工在从两个日期时间选择器中选择的日期范围内的所有条目。下面是SQL语句,如上所述,它在测试时运行良好...然后是按钮单击的代码,这就是我肯定遗漏了什么。有没有人知道为什么我会收到这个错误?
SELECT Customer, Department, Brand, Model, TotalTime, AMPM, InvoiceNumber, Date, Day, TechName, EntryID, Remarks
FROM Entries WHERE TechName = @TechName AND Date BETWEEN @Date1 AND @Date2
private void searchButton_Click(object sender, EventArgs e)
{
if ((techNameComboBox.Text.Length > 0)
&& (dateDateTimePicker.Text.Length > 0)
&& (dateDateTimePicker1.Text.Length > 0))
try
{
this.entriesTableAdapter.FillByDateRange(
this.timeSheetEntriesDataSet.Entries, (techNameComboBox.Text, dateDateTimePicker.Text, dateDateTimePicker1.Text));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
发布于 2021-07-23 06:18:34
您现在可能已经解决了这个问题,但是如果您的查询是
SELECT Customer, Department, Brand, Model, TotalTime, AMPM, InvoiceNumber, Date, Day, TechName, EntryID, Remarks
FROM Entries
WHERE TechName = @TechName AND Date BETWEEN @Date1 AND @Date2
在tableadapter中,那么方法签名将是
FillBy(table, tech name, date1, date2)
但是您似乎是通过尝试传递一个valuetuple来调用它的
FillByDateRange(this.timeSheetEntriesDataSet.Entries, (techNameComboBox.Text, dateDateTimePicker.Text, dateDateTimePicker1.Text))
首先,删除参数周围的圆括号。其次,如果数据库中的date列确实是date,则date1和2的参数将是c# date time类型,而不是字符串,因此应传递来自datetimepicker的值
FillByDateRange(timeSheetEntriesDataSet.Entries, techNameComboBox.Text, dateDateTimePicker.Value, dateDateTimePicker1.Value)
https://stackoverflow.com/questions/61207935
复制相似问题