DataSet 不支持 linq 上的 System.Nullable<> 错误



当我运行代码时,出现"数据集不支持System.Nullable<>"错误

我尝试了很多方法来消除这个问题。

有没有办法摆脱这个错误。 请帮助我。

///SONRA GEL
DataTable dtFinal = new DataTable();
dtFinal.Columns.Add(new DataColumn("AY", typeof(string)));
dtFinal.Columns.Add(new DataColumn("KIMYASAL", typeof(string)));
dtFinal.Columns.Add(new DataColumn("MIKTAR", typeof(double?)));
dtFinal.Columns.Add(new DataColumn("MAKINA", typeof(string)));
dtFinal.Columns.Add(new DataColumn("PRICE", typeof(double?)));

var result = from dataTable1 in dt1.AsEnumerable()
join dataTable2 in dt2.AsEnumerable()
on dataTable1.Field<string>("KIMYASAL") equals dataTable2.Field<string>("eliaradı")
select dtFinal.LoadDataRow(new object[]
{

dataTable1.Field<string>("AY"),
dataTable1.Field<string>("KIMYASAL"),
dataTable1.Field<double?>("MIKTAR"),
dataTable1.Field<string>("MAKINA"),
dataTable2.Field<double?>("PRICE"),
}, false);
result.CopyToDataTable();
MessageBox.Show("finale geldi");
//   dataGridView1.DataBind();
bindingSource1.DataSource = dtFinal;
dataGridView2.DataSource = bindingSource1;

在这里:

dtFinal.Columns.Add(new DataColumn("MIKTAR", typeof(double?)));

定义可为 null 的类型 (double?( 的数据列。这不是必需的:DataTable/DataColumn 类支持所有现成数据类型的可空性(因为这些类早于 .NET 泛型,因此早于 .NET 值类型为空性(。

换句话说:

dtFinal.Columns.Add(new DataColumn("MIKTAR", typeof(double)));

(double而不是double?(将正常工作,您仍然可以在该列中存储存储null


注意:如果您明确不希望支持某个列的可空性,则需要将 AllowDBNull 属性设置为 false:

// This column is nullable
dtFinal.Columns.Add(new DataColumn("NullableColumn", typeof(double)));
// This one isn't
var col = new DataColumn("NotNullableColumn", typeof(double));
col.AllowDBNull = false;
dtFinal.Columns.Add(col);

最新更新