Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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# 替换数据集中的某个值_C#_Loops_Dataset - Fatal编程技术网

C# 替换数据集中的某个值

C# 替换数据集中的某个值,c#,loops,dataset,C#,Loops,Dataset,我有一个数据集,我想用NULL替换“01/01/1754 00:00:00”的每个单元格 因此,类似于FOR循环的外观将循环数据集中的每一行,并检查值是否为'01/01/1754 00:00:00',然后将该值替换为'NULL' 谢谢只要扫描数据集中的每个单元格就行了 for (int i = 0; i < sampleDataSet.Tables[0].Rows.Count; i++) { for (int j = 0; j < sampleDataSet.Tables[

我有一个数据集,我想用NULL替换“01/01/1754 00:00:00”的每个单元格

因此,类似于FOR循环的外观将循环数据集中的每一行,并检查值是否为'01/01/1754 00:00:00',然后将该值替换为'NULL'


谢谢

只要扫描数据集中的每个单元格就行了

for (int i = 0; i < sampleDataSet.Tables[0].Rows.Count; i++) 
{
    for (int j = 0; j < sampleDataSet.Tables[0].Columns.Count; j++)
    {
        if (sampleDataSet.Tables[0].Rows[i][j].ToString() == "01/01/1754 00:00:00") 
        {
            sampleDataSet.Tables[0].Rows[i][j] = "NULL";
        }
    }
}
for(int i=0;i

如果目标数据只存在于数据集的一列中,则可以省略第二个for循环。

请尝试此代码。它适用于我的更新

var dt = DataSet.Table[0] // as per your requirement;
        dt.Select(string.Format("[columnname] = '{0}' ", "datevalue")).ToList<DataRow>()
                .ForEach(r => r["columnname"] = DBNull.Value);
var dt=DataSet.Table[0]//根据您的要求;
选择(string.Format(“[columnname]='{0}',“datevalue”)).ToList()
.ForEach(r=>r[“columnname”]=DBNull.Value);

您在这里提到了一个
数据集
,但我怀疑您的意思是
数据表
,请尝试以下代码:

foreach(DataTable dt in ds.Tables){
  foreach(DataRow row in dt.Rows){
     for(int i = 0; i < dt.Columns.Count; i++){
       if(object.Equals(row[i],"01/01/1754 00:00:00")) row[i] = null;
     }
  }
}
foreach(ds.Tables中的数据表dt){
foreach(数据行中的数据行){
对于(int i=0;i
请发布您到目前为止尝试过的内容?您的代码正常,但“NULL”部分有错误。获取错误:System.FormatException:字符串未被识别为有效的日期时间。有一个从索引0开始的未知单词。如果我输入了日期,它就会工作,但如果我输入了字符串,它就会断开。这有什么办法吗?谢谢,我明白了。这是因为列的类型是DateTime。因此,您可以将DBNull.Value赋值给它。是否可以对其进行更改,使其不转换,只检查DatTime值。数据库中的列已为DateTime,无法将其转换为字符串…sampleDataSet.Tables[0]的数据类型。行[i][j]是对象。因此,如果希望将其与DateTime值进行比较,可以选择不将其转换为字符串。下面的代码就可以了。sampleDataSet.Tables[0].Rows[i][j].Equals(new DateTime(1754,1,1))精细地将其更改为问题中提到的“NULL”。在其他一些逻辑中,它会因为该NULL而失败吗?怎么了?它应该用null更新数据表。我让它工作了。:)您的列是DataTable中的DateTime?yh我将其替换为DBNull.Value,并且有效,谢谢您的帮助:)是的,很好。。在我的代码中用DBNull.value更新null,这样可以吗?