第二个,先select * from A
da.fill(dt);再DataColumn dc_1 = new DataColumn("d");
DataColumn dc_2 = new DataColumn("e");
...
dt.columns.add(dc_1);
dt.columns.add(dc_2);就肯定会出你要的效果
da.fill(dt);再DataColumn dc_1 = new DataColumn("d");
DataColumn dc_2 = new DataColumn("e");
...
dt.columns.add(dc_1);
dt.columns.add(dc_2);就肯定会出你要的效果
不是;遍历[问题2]
是[问题3]
通过问题1的答案加一列e,e=c+d; DataTable1.DefaultView.Sort = "e";然后绑定
比如:
DataTable customerTable = ds.Tables[0];
DataColumn myDataColumn= customerTable.Columns.Add("id", System.Type.GetType("System.Decimal"));
int i=0;
foreach( DataRow row in customerTable.Rows )
{
row["id"]= i++;//类似这样赋值
} 2 可以的3 c+d这一列绑定时,<asp:lable id=... ... text='A(<%#Databinder.Eval(Container.DataItem,"C")%>,<%#Databinder.Eval(Container.DataItem,"C")%>)'/>
public string A(string a ,string b)
{
//处理C+D}
<asp:lable id=... ... text='A(<%#Databinder.Eval(Container.DataItem,"C")%>,<%#Databinder.Eval(Container.DataItem,"D")%>)'/>
如果想让计算列自动更新可以用DataColumn的一个属性Expression:
DataColumn col = new DataColumn();
col.ColumnName = "c+d";
col.DataType = typeof(Decimal);
col.Expression = "c+d";
表A 字段a,b,c
如果我先在DataTable中声名两个计算列a+c , b+c,然后再用Select * from A 填充DataTable 这之后两个计算列的数据是不是被自动填充了?
计算列只有在新建Row然后add到DataTable中时才会被自动填充?