【发布时间】:2013-09-18 01:04:44
【问题描述】:
public virtual int Fill(DataSetservices.Jobs_detailsDataTable dataTable,
global::System.Nullable<global::System.String> fromdate,
global::System.Nullable<global::System.DateTime> todate)
我在 C# 中的dataset.xsd 中写了上面的代码,但是它抛出了一个错误:
错误 1
类型“字符串”必须是不可为空的值类型才能按顺序 将其用作泛型类型或方法中的参数“T” 'System.Nullable'
建议我如何使用字符串,因为我只想使用字符串而不是别的
【问题讨论】:
-
只使用
global::System.String fromDate。 -
不要在 xsd 文件下扩展自动生成的
designer.cs文件。而是创建另一个具有相同名称的文件(没有设计器)并使用partial关键字扩展TableAdapter类。这是因为自动生成的类也是partial。designer.cs文件将在设计器中的下一次更改时重新创建,您的所有更改都将丢失。 -
Nullable<T>用于将无法保存null值的类型“放大”为可以保存的类型。String已经是可以保存null值的类型。因此您不能使用Nullable<string>的组合。 (你可以在这里阅读Nullable<T>:msdn.microsoft.com/en-us/library/b3h38hb0.aspx)。简而言之,只需将您的方法原型变成这样:public virtual int Fill((DataSetservices.Jobs_detailsDataTable dataTable, string fromdate, DateTime? todate); -
您是否有许多不同的类型/命名空间,称为
System、Nullable、String、DateTime等等,因为您使用了这么多globalnamespace aliases?
标签: c# string dataset nullable