硬编码数据表中的值

时间:2013-02-07 19:43:39

标签: c# datatable

如何将值硬编码到数据表的字段中。这就是我所拥有的。

//create Data table to temporary storage

DataTable myTable = new DataTable();
protected void createTable(DataTable myTable)
    {


        myTable.Columns.Add("PilotID");
        myTable.Columns.Add("Start_date");
        myTable.Columns.Add("End_date");
        myTable.Columns.Add("Hours");
    }

4 个答案:

答案 0 :(得分:3)

您可以使用DataColumn.Expression将列设置为常量值。

例如:

// For a number
myTable.Columns["PilotID"].Expression = "1";
// For a string
myTable.Columns["PilotID"].Expression = "'MyPilot'";

然后,添加到数据表中的每一行在列中都具有相同的常量值。如果某些代码试图更改常量值,DataRow也会抛出异常。

答案 1 :(得分:2)

DataTable myTable = new DataTable();

myTable.Columns.Add("PilotID");
myTable.Columns.Add("Start_date");
myTable.Columns.Add("End_date");
myTable.Columns.Add("Hours");

DataRow dr = myTable.NewRow();
dr["PilotID"] = 1;
myTable.Rows.Add(dr);

myTable.Rows[0]["PilotID"] = 1;

答案 2 :(得分:0)

使用globabl设置或类字段分配到表的字段。获得NewRow()后,然后:

myNewRow["ConstantField"] = Settings.SpecialValue;

更新

使用表达式会更好,因为@ shf301建议;但是,我建议使用“设置”来存储硬编码的值。

myTable.Columns["PilotID"].Expression = Settings.SpecialValue;

答案 3 :(得分:0)

你可以这样试试!

    string[] TABLE_COLUMNS = new string[] { "PilotID", "Start_date", "End_date", "Hours", };
    static void Main()
    {

        var i_need_new_table = HardCodedDataTable();
        var i_need_one_more_new_table = HardCodedDataTable(TABLE_COLUMNS);

    }

    private static DataTable HardCodedDataTable() // default hard-coded table
    {
        DataTable myTable = new DataTable();
        myTable.Columns.Add("PilotID");
        myTable.Columns.Add("Start_date");
        myTable.Columns.Add("End_date");
        myTable.Columns.Add("Hours");
        return myTable;
    }

    private static DataTable HardCodedDataTable(string[] columns) // table with predefined columns in array
    {
        DataTable myTable = new DataTable();
        Array.ForEach(columns, s => myTable.Columns.Add(s));
        return myTable;
    }