如何将值硬编码到数据表的字段中。这就是我所拥有的。
//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");
}
答案 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;
}