如何使用Table Adapter 填充SQL服务器存储过程带两个参数

How to use Table Adapter Fill with SQL Server stored procedure with two parameters

我有一个带有两个参数的存储过程 - beginDateendDate。我创建了一个 table 适配器,它看起来需要两个参数,因为在设计器屏幕上它显示 @beginDate@endDate

我去填的时候:

DateTime beginDate = new DateTime(2016, 5, 1);
DateTime endDate = new DateTime(2016, 5, 31);

this.getDailySalesTableAdapter.Fill(myDataSet.getDailySales, beginDate, endDate);

我得到一个错误,参数 3 必须使用 'ref' 关键字传递。当我添加 ref 关键字时,出现参数 3 无法从 ref System.DateTime 转换为 System.DateTime? 我正在使用 SQL 服务器的错误。

听起来 "Argument 3" 应该是一个可为 null 的 DateTime。将 endDate 的声明更改为:

DateTime? endDate = new DateTime(2016, 5, 31);

This 是一篇理解可空类型的好文章,是的,@wablab 正确提到了你需要将 datetime 变量声明为可空 datetime