一般DataTable操作数据库是下面的方式:
string selectCommand="select id, name form table";
string connstr = function.Conn();
OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
dataAdapter = new OleDbDataAdapter(selectCommand, conn);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);这样table得出的是两列的临时表:id name
1  语文
2  基础语文
3  高级语文
4  数学
5  高等数学
6  线性数学
7  英语.....两列都是简单的直接读取数据中数据的如果我想name列不是仅仅读取数据库中的数据,而是要根据某一特定规律显示(如:递归显示树效果,根据判断,在"name"列的数据前面加相应的符号如"├","└","│"等),得到下列临时表:id name
1  语文
2  ├基础语文
3  └高级语文
4  数学
5  ├高等数学
6  └线性数学
7  英语.....
该怎么写DataTable代码? 注:树效果只是举例,不是要求怎么实现树效果,只是想知道怎么能把DataTable中的数据能显示特定符号

解决方案 »

  1.   

    首先 id name 2列肯定是不够的,必须有个标识列.
    类似
    id name    pid
    1 语文      0
    2 基础语文  1
    3 高级语文  1
    4 数学      0
    5 高等数学  1
    6 线性数学  1具体标识有好几种办法了。最后写个递归修改下DataTable中相应数据(根据逻辑加上你的"├","└","│)
      

  2.   

    只是想知道怎么能把DataTable中的数据能显示除数据库外的字符,并非求树型啊
      

  3.   

    就是说一般的做法
    string selectCommand="select id, name form table";
    string connstr = function.Conn();
    OleDbConnection conn = new OleDbConnection(connstr);
    conn.Open();
    dataAdapter = new OleDbDataAdapter(selectCommand, conn);
    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    dataAdapter.Fill(table);读取出来的datatable只是完全照读数据中的资料,这种方法,如果想显示数据外的其他字符(如name中数据加"├"),也只能在sql语句中做手脚,但在sql中做不来复杂的东西,如显示树效果,sql就很难实现了,所以,我想知道,可以怎样才能在name字段中按某一特定判断,在数据前面显示不同符号?
      

  4.   

    foreach(DataRow row in dt.Rows)
      {
          
               //如本来数据为"基础语文","高级语文"........
               //修改后为 "└基础语文","└高级语文"
               row["name "]="+"+row["name "].toString();
           
      }
     总之遍历DataTable.改你想改的就是了
      

  5.   

    敲错
      row["name "]="└"+row["name "].toString();