【发布时间】:2021-05-03 12:56:52
【问题描述】:
我使用 Azure 函数连接到 SQL Server 数据库,并尝试创建数据表
string GetAllItems = String.Format("SELECT * FROM dbo.vw_SO_Leg WHERE Customer=" + Customer);
using (var adp = new SqlDataAdapter(GetAllItems, str))
using (DataTable datatable = new DataTable())
{
adp.Fill(datatable);
var temp = datatable;
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Customer");
dt.Columns.Add("Amount");
foreach (DataRow item in datatable.Rows)
{
double FixedPrice = Convert.ToDouble(item["FixedPrice"]);
double ExtraCostsAmount = Convert.ToDouble(item["ExtraCostsAmount"]);
double Amount = FixedPrice + ExtraCostsAmount
dt.Rows.Add(Customer, Amount);
}
ds.Tables.Add(dt);
}
问题是 SQL Server 中的 FixedPrice 和 ExtraCostsAmount 列可以包含 Null 值,当我尝试运行它时出现错误。我尝试了 try/catch 和 if 语句。但是该变量在语句之外不可用。任何人都可以帮助我吗?提前致谢
【问题讨论】:
-
一种解决方案是使用 Dapper(而不是 DataTables),并使用
double?作为类型。 DBNull 很痛苦。
标签: c# sql-server datatable dataset dbnull