4

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

当数据表为空时,我想为特定列分配一个值。

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

        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”列的值。在这种情况下,我想单独为该列分配值并将空字符串“”传递给其他列。可能的 ?

4

2 回答 2

7

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

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);

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

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

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

这里 test 将包含一个空字符串。

于 2012-06-28T09:16:49.577 回答
0

怎么样

 DataRow dr = mydatatable.NewRow();

 dr[0] = 1;                // Assuming that first column is int type
 dr[0] = "someothervalue"; //Assuming that second column is string type
 ..
 ..
 ..
 .. // Repeat for other columns.
 mydatatable.AddRow(dr);
于 2012-06-28T09:08:30.350 回答