System.Data.DataTable table = new DataTable();
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(string));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.ColumnName=dc1;
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = aaa.NewRow();
DataRow dr2 = aaa.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1);aaa.Rows[1][“dc1”] = "123";
aaa.Rows[1][“dc1”]显示出来为什么老是空值
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(string));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.ColumnName=dc1;
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = aaa.NewRow();
DataRow dr2 = aaa.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1);aaa.Rows[1][“dc1”] = "123";
aaa.Rows[1][“dc1”]显示出来为什么老是空值
楼上用WINFORM编译不通过吗?需要把table.Columns.Add("bb", typeof(string)); 这列类型改成INT的
System.Data.DataTable table = new DataTable();
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(int));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = aaa.NewRow();
DataRow dr2 = aaa.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1); table.Rows[1][“dc1”] = "123";
table.Rows[1][3] = "123";
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(int));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
}DataColumn dc = new DataColumn();
dc.ColumnName = "dc1";
dc.Expression = "value-bb ";
table.Columns.Add(dc);
foreach (DataRow row in table.Rows)
{
Console.Write("id:" + row[0].ToString() + "\t,");
Console.Write("value:" + row[1].ToString() + "\t,");
Console.Write("bb:" + row[2].ToString() + "\t,");
Console.WriteLine("dc1:" + row[3].ToString());
}
很正常。你创建控制台程序,试试?
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(int));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = aaa.NewRow();
DataRow dr2 = aaa.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1); table.Rows[1][“dc1”] = "123";
table.Rows[1][3] = "123";
你用这段代码看看表TABLE里的第2行的DC1列那个单元格的值是否为123
您可以用dataGridView试试哦
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(int));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = table.NewRow();
DataRow dr2 = table.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1);
//table.Rows[1]["dc"] = "123";
table.Rows[1][3] = "123"; 看看代码,我新增了两行空值。在新增的两行空值对应的dc列的那个单元格也就是table.Rows[1][3]。我想手动给这个单元格赋值。问题就处在这列具有Expression 属性,死活不能赋值。
public static void TestDataTable2()
{
System.Data.DataTable table = new DataTable();
table.Columns.Add("id", typeof(string));
table.Columns.Add("value", typeof(int));
table.Columns.Add("bb", typeof(int));
for (int i = 0; i <= 10; i++)
{
System.Data.DataRow dRow = table.NewRow();
dRow["id"] = "id" + i.ToString();
dRow["value"] = i + 2;
dRow["bb"] = i;
table.Rows.Add(dRow);
} DataColumn dc = new DataColumn();
dc.Expression = "value-bb ";
table.Columns.Add(dc);
DataRow dr1 = table.NewRow();
DataRow dr2 = table.NewRow(); table.Rows.InsertAt(dr1, 0);
table.Rows.InsertAt(dr2, 1);
//table.Rows[1]["dc"] = "123";
//table.Rows[1][3] = "123";
foreach (DataRow row in table.Rows)
{
Console.Write("id:" + row[0].ToString() + "\t,");
Console.Write("value:" + row[1].ToString() + "\t,");
Console.Write("bb:" + row[2].ToString() + "\t,");
Console.WriteLine("dc1:" + row[3].ToString());
}
}结果id: ,value: ,bb: ,dc1:
id: ,value: ,bb: ,dc1:
id:id0 ,value:2 ,bb:0 ,dc1:2
id:id1 ,value:3 ,bb:1 ,dc1:2
id:id2 ,value:4 ,bb:2 ,dc1:2
id:id3 ,value:5 ,bb:3 ,dc1:2
id:id4 ,value:6 ,bb:4 ,dc1:2
id:id5 ,value:7 ,bb:5 ,dc1:2
id:id6 ,value:8 ,bb:6 ,dc1:2
id:id7 ,value:9 ,bb:7 ,dc1:2
id:id8 ,value:10 ,bb:8 ,dc1:2
id:id9 ,value:11 ,bb:9 ,dc1:2
id:id10 ,value:12 ,bb:10 ,dc1:2