Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据表值另存为空字符串,而不是null_C#_.net - Fatal编程技术网

C# 将数据表值另存为空字符串,而不是null

C# 将数据表值另存为空字符串,而不是null,c#,.net,C#,.net,我正在使用SqlDataAdapter将一些值从表保存到数据库: private BindingSource bindingSource1 = new BindingSource(); private SqlDataAdapter dataAdapter = new SqlDataAdapter(); ... dataAdapter.Update((DataTable) bindingSource1.DataSource); 但它在数据库中将空值保存为null。是否有办法让它将它们保存为空字符

我正在使用SqlDataAdapter将一些值从表保存到数据库:

private BindingSource bindingSource1 = new BindingSource();
private SqlDataAdapter dataAdapter = new SqlDataAdapter();
...
dataAdapter.Update((DataTable) bindingSource1.DataSource);

但它在数据库中将空值保存为null。是否有办法让它将它们保存为空字符串

你有没有尝试过用
字符串填充有问题的字段。空的

经过一些研究,每个人似乎都在手动操作,所以我写了一个方法

  public static DataTable RemoveNulls(DataTable dt)
    {
        for (int a = 0; a < dt.Rows.Count; a++)
        {
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                if (dt.Rows[a][i] == DBNull.Value)
                {
                    dt.Rows[a][i] = "";
                }
            }
        }

        return dt;
    }
publicstaticdatatableremovenulls(datatabledt)
{
对于(int a=0;a
以及一些相关链接


您为什么要这样做?空字符串表示实际为列分配了某些内容,而NULL表示未分配。通过分配字符串,您破坏了基本的数据库操作(标准),并使数据不准确(您无法判断某个值是意外丢失还是故意清除)。除非您有实际的业务需要这样做(而且不只是懒得正确处理空值),否则这是一个坏主意,依我看。我正在维护一个现有的系统,需要这样做。所以在这件事上我没有太多选择。