2

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

//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

4 回答 4

3

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

例如:

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

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

于 2013-02-07T19:57:41.767 回答
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;
于 2013-02-07T19:54:35.013 回答
0

使用全局设置或类字段分配给表的字段。一旦你有了你的NewRow(),那么:

myNewRow["ConstantField"] = Settings.SpecialValue;

更新

正如@shf301 建议的那样,使用表达式会更好;但是,我建议使用设置来存储您的硬编码值。

myTable.Columns["PilotID"].Expression = Settings.SpecialValue;
于 2013-02-07T19:47:32.160 回答
0

U can try it this way!

    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;
    }
于 2013-02-07T19:52:58.757 回答