C# 替换数据集中的某个值
我有一个数据集,我想用NULL替换“01/01/1754 00:00:00”的每个单元格 因此,类似于FOR循环的外观将循环数据集中的每一行,并检查值是否为'01/01/1754 00:00:00',然后将该值替换为'NULL'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[
谢谢只要扫描数据集中的每个单元格就行了
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,这样可以吗?