c# - 使用 C# 为数据表中的特定列赋值

标签 c#

我创建了一个数据表并向其中添加了许多列。

当数据表为空时,我想为特定列赋值。

就像在数据表中找到列名并为其赋值......这可能吗?谢谢

        dt_FAQ.Columns.Add("FQ_Question_1", typeof(string));
        dt_FAQ.Columns.Add("FQ_Answer_1", typeof(string));
        dt_FAQ.Columns.Add("FQ_Question_2", typeof(string));
        dt_FAQ.Columns.Add("FQ_Answer_2", typeof(string));
        dt_FAQ.Columns.Add("FQ_Question_3", typeof(string));
        dt_FAQ.Columns.Add("FQ_Answer_3", typeof(string));
        dt_FAQ.Columns.Add("FQ_Question_4", typeof(string));
        dt_FAQ.Columns.Add("FQ_Answer_4", typeof(string));
        dt_FAQ.Columns.Add("FQ_Question_5", typeof(string));
        dt_FAQ.Columns.Add("FQ_Answer_5", typeof(string));

在这种情况下,我只会获得必须分配给上述数据表中“FQ_Answer_1”列的值。在那种情况下,我想单独将值分配给该列并将空字符串“”传递给其他列。可能吗?

最佳答案

如果现有数据表中包含数据,则必须遍历数据表行并为每一列设置值

foreach(DataRow dr in dt_FAQ.Rows)
{
     dr["FQ_Answer_1"] = "your value";
     dr["FQ_Question_1"] = string.Empty;
     dr["FQ_Question_2"] = string.Empty;
     //.... for all the columns
}

要查找特定的列,您可以执行以下操作:

    DataColumn dc = dt.Columns.Cast<DataColumn>().Where(r => r.ColumnName == "yourname").FirstOrDefault();
   //Or simpler 
    DataColumn dc2 = dt.Columns["yourcol"];

编辑:对于新行:

DataRow dr = dt_FAQ.NewRow();
dr["FQ_Answer_1"] = "some value";
dt_FAQ.Rows.Add(dr);

这将为 FQ_Answer1 列创建一个具有“某些值”的新行,所有其他剩余列将以 string.Empty 作为默认值。

您可以检查其他列,例如:

string test = dt_FAQ.Rows[0]["FQ_Question_1"].ToString();

此处测试将包含一个空字符串。

关于c# - 使用 C# 为数据表中的特定列赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241320/

相关文章:

c# - 为什么 TcpListener 没有实现 IDisposable

c# - 如何在MonoDevelop中使用BigInteger类?

c# - visual Studio 2015 中是否有 c# windows 窗体应用程序?

C#转换错误

c# - 比较两个列表中的项目并用 LINQ 替换 foreach 循环

c# - 使用 IoC 进行单元测试

c# - 存储许多小对象的内存有效方式

c# - MVC3 的好处?

c# - 如何动态生成数据表以及动态生成列和行?

c# - ASP.NET Web API - 尝试传递参数时不支持 GET HTTP 动词 (405)