【问题标题】:How to set null data in DataTable to empty string如何将DataTable中的空数据设​​置为空字符串
【发布时间】:2013-02-10 21:07:30
【问题描述】:

我用数据库中的数据填充了datatable 对象,我需要检查其中一些是否为NULL 并将其设置为空字符串
问题是有些数据在数据库中是NULL,但在DataTable 中却是"0"
我尝试设置为""String.EmptyString 等。没有任何效果。

foreach (DataRow row in ds.Tables[0].Rows)
{
    foreach (DataColumn c in ds.Tables[0].Columns)
    {
        object value = row[c];

        if (value == DBNull.Value)
        {
            try
            {
                row[c] = "";

【问题讨论】:

  • "问题是有些数据在数据库中为 NULL,但在 DataTable 中为"0"。"我不相信你。 :) 你能写一个示例程序来证明这一点吗?我以前从未见过这种行为。
  • 您需要首先了解数据库架构是否允许空值,然后设置为 string.empty 将起作用。如果不是,那么您需要将空值设置为 DBNUll 并且“”与设置为空
  • 相信我 :) int 列为空,日期列为空。我在Row.ItemArray[0]=0Row.ItemArray[0]={1/1/1900 12:00:00 AM} 中的DataTable。

标签: c# database ado.net dataset datarow


【解决方案1】:

尝试更改为;

foreach (DataRow row in ds.Tables[0].Rows)
{
    foreach (DataColumn c in ds.Tables[0].Columns)
    {
        if (row.IsNull(c))
        {
            try
            {
                row[c] = string.Empty;

row.IsNull(c) 检查比直接与 DBNull.Value 比较更可靠,因为它可以评估多个与 DB 中的 NULL 等效的事物。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2020-05-05
    • 2016-11-22
    相关资源
    最近更新 更多