<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    302班

    java突擊隊
    posts - 151, comments - 74, trackbacks - 0, articles - 14
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    DataTable

    Posted on 2007-07-28 21:43 停留的風 閱讀(673) 評論(0)  編輯  收藏 所屬分類: .NET技巧特輯
    。。。。。
    SqlDataReader reader1 = cmd1.ExecuteReader ();
    DataTable dt = reader1 .GetSchemaTable
    SetColumnHeaders(dt);

    private void SetColumnHeaders(DataTable schema)//設置表頭
    {       
                           
        foreach (DataRow  row in schema.Rows )
        {
            listView1 .Columns .Add ( ??? ,95,HorizontalAlignment.Center );
        }
    }

    我想把DataTable中每一行的第一列(ColumnName)的內容添加為LISTVIEW的表頭,請問怎么才能取到要的元素?
    我看VB里面是在上面問號的地方用rom("ColumnName"),不知道C#里面應該怎么用?????
    在下面的例子中實現了3個Join方法,其目的是把兩個DataTable連接起來,相當于Sql的Inner Join方法,返回DataTable的所有列。
    如果兩個DataTable中的DataColumn有重復的話,把第二個設置為ColumnName+"_Second",下面是代碼,希望對大家有所幫助。
    using System;
    using System.Data;

    namespace WindowsApplication1
    {
        
    public class SQLOps
        
    {
            
    public SQLOps()
            
    {            
            }


            
    public static DataTable Join (DataTable First, DataTable Second, DataColumn[] FJC, DataColumn[] SJC)

            
    {

                
    //創建一個新的DataTable

                DataTable table 
    = new DataTable("Join");


                
    // Use a DataSet to leverage DataRelation

                
    using(DataSet ds = new DataSet())

                
    {

                    
    //把DataTable Copy到DataSet中

                    ds.Tables.AddRange(
    new DataTable[]{First.Copy(),Second.Copy()});

                    DataColumn[] parentcolumns 
    = new DataColumn[FJC.Length];

                    
    for(int i = 0; i < parentcolumns.Length; i++)

                    
    {

                        parentcolumns[i] 
    = ds.Tables[0].Columns[FJC[i].ColumnName];

                    }


                    DataColumn[] childcolumns 
    = new DataColumn[SJC.Length];

                    
    for(int i = 0; i < childcolumns.Length; i++)

                    
    {

                        childcolumns[i] 
    = ds.Tables[1].Columns[SJC[i].ColumnName];

                    }



                    
    //創建關聯

                    DataRelation r 
    = new DataRelation(string.Empty,parentcolumns,childcolumns,false);

                    ds.Relations.Add(r);


                    
    //為關聯表創建列

                    
    for(int i = 0; i < First.Columns.Count; i++)

                    
    {

                        table.Columns.Add(First.Columns[i].ColumnName, First.Columns[i].DataType);

                    }


                    
    for(int i = 0; i < Second.Columns.Count; i++)

                    
    {

                        
    //看看有沒有重復的列,如果有在第二個DataTable的Column的列明后加_Second

                        
    if(!table.Columns.Contains(Second.Columns[i].ColumnName))

                            table.Columns.Add(Second.Columns[i].ColumnName, Second.Columns[i].DataType);

                        
    else

                            table.Columns.Add(Second.Columns[i].ColumnName 
    + "_Second", Second.Columns[i].DataType);

                    }

                   

                    table.BeginLoadData();

                    
    foreach(DataRow firstrow in ds.Tables[0].Rows)

                    
    {

                        
    //得到行的數據

                        DataRow[] childrows 
    = firstrow.GetChildRows(r);

                        
    if(childrows != null && childrows.Length > 0)

                        
    {

                            
    object[] parentarray = firstrow.ItemArray; 

                            
    foreach(DataRow secondrow in childrows)

                            
    {

                                
    object[] secondarray = secondrow.ItemArray;

                                
    object[] joinarray = new object[parentarray.Length+secondarray.Length];

                                Array.Copy(parentarray,
    0,joinarray,0,parentarray.Length);

                                Array.Copy(secondarray,
    0,joinarray,parentarray.Length,secondarray.Length);

                                table.LoadDataRow(joinarray,
    true);

                            }


                        }


                    }


                    table.EndLoadData();

                }



                
    return table;

            }



            
    public static DataTable Join (DataTable First, DataTable Second, DataColumn FJC, DataColumn SJC)

            
    {

                
    return Join(First, Second, new DataColumn[]{FJC}new DataColumn[]{SJC});

            }


            
    public static DataTable Join (DataTable First, DataTable Second, string FJC, string SJC)

            
    {

                
    return Join(First, Second, new DataColumn[]{First.Columns[FJC]}new DataColumn[]{First.Columns[SJC]});

            }



        }

    }

    主站蜘蛛池模板: 亚洲av激情无码专区在线播放| 好男人视频在线观看免费看片| 男女一边桶一边摸一边脱视频免费| 亚洲AV永久无码精品网站在线观看| 亚洲最大中文字幕无码网站| 亚洲人成电影青青在线播放| 亚洲一区二区免费视频| 亚洲国产日韩在线成人蜜芽| 亚洲一区二区三区无码国产 | 免费无码又爽又刺激高潮软件| 精品国产免费人成网站| 久久国产精品免费一区| 色www永久免费网站| 免费h视频在线观看| 日韩免费人妻AV无码专区蜜桃| 18禁美女黄网站色大片免费观看 | 羞羞网站在线免费观看| 另类小说亚洲色图| sihu国产精品永久免费| 免费精品99久久国产综合精品| 91av免费观看| 在线a级毛片免费视频| 黄网址在线永久免费观看 | 毛片免费全部播放无码| 免费精品人在线二线三线区别| 日本无吗免费一二区| 亚洲日本在线观看视频| 亚洲av无码乱码国产精品fc2| 亚洲激情电影在线| 亚洲精品永久在线观看| a一级毛片免费高清在线| 日本在线免费播放| 免费a级毛片无码a∨蜜芽试看| 免费国产高清视频| 亚洲V无码一区二区三区四区观看| 亚洲综合小说久久另类区| 亚洲精品乱码久久久久蜜桃| 亚洲免费无码在线| 国产大片免费网站不卡美女 | 免费看男女下面日出水来| 成在线人永久免费视频播放|