Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: convert type từ ArrayList thành mảng DataRow[] như thế nào ?

  1. #1
    Ngày gia nhập
    04 2011
    Bài viết
    33

    Mặc định convert type từ ArrayList thành mảng DataRow[] như thế nào ?

    mình có 1 lớp chứa nhiều ArrayList bên trong lớp đó, mỗi thành phần trong ArrayList là 1 DataRow,
    bây giờ mình muốn chuyển các ArrayList đó thành các mảng DataRow[], nhưng máy báo lỗi là ko convert như vậy được. "Cannot convert type 'System.Collections.ArrayList' to 'System.Data.DataRow[]".Bây giờ làm sao lấy được dũ liệu trong ArrayList thành mảng DataRow[]?
    Thanks in advance!

  2. #2
    Ngày gia nhập
    03 2010
    Bài viết
    122

    Mảng datarow= datatable mất rồi!

    ps: Hình như mình ko thể new 1 datarow đc

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    TP HCM
    Bài viết
    5

    Bạn lên google search đi mình search thử được cái này
    Mình cũng chưa thử nhưng đọc qua thấy hay hay hy vọng có ích cho bạn

    Code:
    using System;
    using System.Collections;
    using System.Text;
    using System.Data;
    using System.Collections;
    
    namespace MyConverter
    {
        class Converters
        {
            public static DataTable ToDataTable(ArrayList alist) 
            {  DataTable dt = new DataTable();
                
               if (alist[0] == null)
                throw new FormatException("Parameter ArrayList empty");
                dt.TableName = alist[0].GetType().Name;
                DataRow dr;
                System.Reflection.PropertyInfo [] propInfo =alist[0].GetType().GetProperties();
                for(int i=0; i< propInfo.Length;i++)
                {                
                    dt.Columns.Add(propInfo[i].Name, propInfo[i].PropertyType);
                }
    
                for(int row =0;row < alist.Count ; row++)
                {
                    dr = dt.NewRow();
                    for (int i=0;i< propInfo.Length;i++)
                    {
                        object tempObject =alist[row];
    
                        object t = propInfo[i].GetValue(tempObject, null);
                        /*object t =tempObject.GetType().InvokeMember(propInfo[i].Name,
                                 R.BindingFlags.GetProperty , null,tempObject , new object [] {});*/
                        if (t!=null)
                        dr[i] = t.ToString(); 
                    }
                dt.Rows.Add(dr);
                } 
                return dt;
            }
    
            public static DataTable ToDataTable(ArrayList alist, ArrayList alColNames)
            {
                DataTable dt = new DataTable();
    
                if (alist[0] == null)
                    throw new FormatException("Parameter ArrayList empty");
                dt.TableName = alist[0].GetType().Name;
                DataRow dr;
                System.Reflection.PropertyInfo[] propInfo = alist[0].GetType().GetProperties();
                for (int i = 0; i < propInfo.Length; i++)
                {
                    for (int j = 0; j < alColNames.Count; j++)
                    {
                        if (alColNames[j].ToString() == propInfo[i].Name)
                        {
                            dt.Columns.Add(propInfo[i].Name, propInfo[i].PropertyType);
                            break;
                        }
                    }                
                }
    
                for (int row = 0; row < alist.Count; row++)
                {
                    dr = dt.NewRow();
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        object tempObject = alist[row];
    
                        object t = propInfo[i].GetValue(tempObject, null);
                        /*object t =tempObject.GetType().InvokeMember(propInfo[i].Name,
                                 R.BindingFlags.GetProperty , null,tempObject , new object [] {});*/
                        if (t != null)
                            dr[i] = t.ToString();
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
            }
        }
    }
    Có thể xem thêm ở http://www.codeproject.com/KB/collec..._to_table.aspx
    YM! chitchatchut2006

Các đề tài tương tự

  1. lỗi Cannot convert type 'char' to 'string'
    Gửi bởi newshacker trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 09-10-2015, 02:07 AM
  2. Lỗi convert type[] ->Type (MVC 3)
    Gửi bởi nhuphuc1007 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-07-2013, 04:47 PM
  3. Convert type object[] to string
    Gửi bởi nh0cvip trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 12-04-2013, 09:10 AM
  4. Lỗi: Cannot implicitly convert type 'int' to 'bool'
    Gửi bởi gacongnghiep_cs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 18-03-2011, 08:49 PM
  5. Lỗi Cannot implicitly convert type khi Convert Array to List trong WCF ???
    Gửi bởi dangbk trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 26-09-2010, 05:43 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn