Làm th? nào đ?: Th?c hi?n m?t helper t?p d? li?u tham gia l?p h?c trong Visual C#.NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 326080 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài t?ng bư?c này mô t? làm th? nào đ? th?c hi?n và cách s? d?ng m?t DataSetHelper l?p h?c bao g?m các m?u m? đ? t?o ra m?t DataTable đ?i tư?ng t? hai hay nhi?u liên quan DataTable đ?nh ngh?a và b?n sao h? sơ đư?c s?p x?p và l?c t? ngu?n DataTable các đ?i tư?ng đ?n đích DataTable.

Đ? th?c hi?n vi?c này, b?n s? d?ng phương pháp công c?ng sau đây:
  • CreateJoinTable
  • InsertJoinInto
  • SelectJoinInto
Các SelectJoinInto các cu?c g?i phương pháp các CreateJoinTable và các InsertJoinInto phương pháp. B?n c?ng có th? s? d?ng m?t thành viên nào v? phương pháp và d? li?u tư nhân helper đ? lưu tr? danh sách l?nh v?c phân tích.

Các DataSetHelper l?p bao g?m m?t S? li?u tài kho?n c?a bi?n. Tùy ch?n, b?n có th? gán m?t hi?n có S? li?u đ? các S? li?u tài kho?n c?a bi?n. N?u bi?n thành viên đi?m đ?n m?t h?p l? S? li?u, b?t k? DataTable các đ?i tư?ng mà các CreateJoinTable ho?c các SelectJoinInto phương pháp t?o ra đư?c b? sung vào các S? li?u. Trong c? hai trư?ng h?p, các cu?c g?i phương th?c tr? v? m?t tham chi?u đ?n các DataTable đ?i tư?ng. Các InsertJoinInto phương pháp đ?i h?i m?t m?c tiêu hi?n t?i DataTable và không tr? v? b?t c? đi?u g?.

Để biết thêm thông tin về S? li?u các đ?i tư?ng, b?m vào s? bài vi?t dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
313485 Thông báo: L? tr?nh cho ADO.S? li?u NET, DataView và DataViewManager

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, m?ng cơ s? h? t?ng, và gói d?ch v? đư?c yêu c?u:
  • Microsoft Windows XP, Windows 2000 ho?c Windows NT 4.0 Service Pack 6a
  • Microsoft Visual Studio.NET
Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i các ch? đ? sau:
  • Visual C#.NET cú pháp
  • ADO.Nguyên t?c cơ b?n NET và cú pháp

DataSetHelper v? Class

M? trong ph?n này tuyên b? l?p v? đ? mà t?t c? DataSetHelper bài vi?t thêm phương pháp và các bi?n thành viên.
  1. B?t đ?u Visual Studio.NET.
  2. Trên các Tệp tr?nh đơn, đi?m đ?n M?i, sau đó b?m Dự án.
  3. Trong các D? án m?i h?p tho?i h?p, b?m vào Visual C# các d? án dư?i Các lo?i d? án, sau đó b?m Thư vi?n l?p dư?i Khuôn mẫu.
  4. Trong các Tên h?p, lo?i DataSetHelper.
  5. Thay th? m? l?p v?i đo?n m? sau:
    public class DataSetHelper
    {
        public DataSet ds;
    
        public DataSetHelper(ref DataSet DataSet)
        {
    	ds = DataSet;
        }
        public DataSetHelper()
        {
    	ds = null;
        }
    }
    					
    B?n có th? s? d?ng hai overloads cho các nhà xây d?ng đ? t?o ra m?t th? hi?n c?a l?p có ho?c không có m?t tham chi?u đ?n m?t h?p l? S? li?u. Đ?i v?i m?t l?p có ch?a m?t tham chi?u đ?n m?t h?p l? S? li?u, các DataTable các đ?i tư?ng mà các phương pháp tr? v? c?ng đư?c g?i t? đ?ng đ?n các S? li?u.

L?nh v?c danh sách phân tích cú pháp

Ti?t đo?n này ch?a m? cho m?t danh sách các l?nh v?c phân tích cú pháp. C?u trúc phân tích đư?c s? d?ng đ? cho các CreateJoinTable và các InsertJoinInto phương pháp không ph?i tính danh sách l?nh v?c. Nh?ng phương pháp này ph?i tính danh sách trư?ng n?u h? đư?c g?i là t? các SelectJoinInto phương pháp ho?c t? m? riêng c?a b?n. Danh sách các l?nh v?c phân tích và danh sách unparsed trư?ng s? đư?c lưu trong Tư nhân tài kho?n c?a các bi?n c?a các DataSetHelper l?p h?c.
  1. Thêm dư?i đây Tư nhân l?p h?c đ?nh ngh?a trong các DataSetHelper l?p mà b?n t?o ra trong các ""ph?n:
    private class FieldInfo
    {
        public string RelationName;
        public string FieldName;	//source table field name
        public string FieldAlias;	//destination table field name
        public string Aggregate;
    }
    					
    LƯU ?: L?p này là ph? bi?n khác DataSetHelper bài vi?t và có ch?a m?t s? l?nh v?c bài vi?t này không s? d?ng.

  2. Thêm dư?i đây Tư nhân tài kho?n c?a các bi?n đ? đ?nh ngh?a l?p ngay l?p t?c sau khi các S? li?u tuyên b?:
    private System.Collections.ArrayList m_FieldInfo; private string m_FieldList; 
    					
  3. Thêm dư?i đây Tư nhân phương pháp đ? đ?nh ngh?a l?p. Phương pháp này là tương t? như các phương pháp đư?c s? d?ng trong khác DataSetHelper bài vi?t.
    private void ParseFieldList(string FieldList, bool AllowRelation)
    {
        /*
         * This code parses FieldList into FieldInfo objects  and then 
         * adds them to the m_FieldInfo private member
         * 
         * FieldList systax:  [relationname.]fieldname[ alias], ...
        */ 
        if (m_FieldList == FieldList) return;
        m_FieldInfo = new System.Collections.ArrayList();
        m_FieldList = FieldList;
        FieldInfo Field; string[] FieldParts;
        string[] Fields=FieldList.Split(',');
        int i;
        for (i=0; i<=Fields.Length-1; i++)
        {
            Field=new FieldInfo();
            //parse FieldAlias
            FieldParts = Fields[i].Trim().Split(' ');
            switch (FieldParts.Length)
            {
                case 1:
                    //to be set at the end of the loop
                    break;
                case 2:
                    Field.FieldAlias=FieldParts[1];
                    break;
                default:
                    throw new Exception("Too many spaces in field definition: '" + Fields[i] + "'.");	                        
            }
            //parse FieldName and RelationName
            FieldParts = FieldParts[0].Split('.');
            switch (FieldParts.Length)
            {
                case 1: 
                    Field.FieldName=FieldParts[0];
                    break;
                case 2:
                    if (AllowRelation==false)
                        throw new Exception("Relation specifiers not permitted in field list: '" + Fields[i] + "'.");
                    Field.RelationName = FieldParts[0].Trim();
                    Field.FieldName=FieldParts[1].Trim();
                    break;
                default:
                    throw new Exception("Invalid field definition: " + Fields[i] + "'.");
            }
            if (Field.FieldAlias==null) 
                Field.FieldAlias = Field.FieldName;
            m_FieldInfo.Add (Field);
        }
    }
    					

Phương pháp CreateJoinTable

Ti?t đo?n này ch?a m? cho các CreateJoinTable phương pháp.

Sau đây là quy ư?c g?i đi?n tho?i cho các CreateJoinTable phương pháp:
dt = dsHelper.CreateJoinTable("TestTable", ds.Tables["Employees"],
    "FirstName FName,LastName LName,DepartmentEmployee.DepartmentName Department");
				
M?u cu?c g?i này t?o ra m?t m?i DataTable v?i m?t TableName TestTable và ba l?nh v?c (FName, LName và vùng). Ba l?nh v?c có d? li?u cùng lo?i như FirstName và các l?nh v?c th? trong b?ng nhân viên và các l?nh v?c DepartmentName trong b?ng ph? huynh đư?c truy c?p thông qua DepartmentEmployee DataRelation đ?i tư?ng.

S? d?ng cú pháp sau đây đ? xác đ?nh các l?nh v?c trong danh sách l?nh v?c:
[relationname.]fieldname[ alias], ...
				
Lưu ? sau đây cho cú pháp này:
  • Các ColumnName và các DataType thu?c tính là thu?c tính duy nh?t đư?c sao vào các đi?m đ?n DataTable.
  • K?t qu? đánh đư?c sao chép cho các l?nh v?c có ch?a m?t bi?u hi?n.
  • B?n có th? đ?i tên m?t l?nh v?c trong các đi?m đ?n DataTable b?ng cách ch? ra m?t tên bí danh.
  • Danh sách các l?nh v?c có th? ch?a m?t t?p h?p con c?a các l?nh v?c tên đư?c li?t kê theo m?t th? t? khác nhau hơn so v?i th? t? trong m? ngu?n DataTable. N?u danh sách trư?ng là tr?ng, m?t ngo?i l? đư?c ném.
  • Các DataRelation ph?i liên quan đ?n các b?ng ph? huynh. Ví d?, n?u b?n mu?n t?o ra m?t b?ng mà k?t h?p các l?nh v?c c?a khách hàng, nhân viên và các b?ng đơn đ?t hàng, b?n ph?i s? d?ng b?ng đơn đ?t hàng như ngu?n b?ng và sau đó tham kh?o các l?nh v?c trong các khách hàng và nhân viên b?ng b?ng phương ti?n c?a quan h?.
Đ? g?i các CreateJoinTable phương pháp, thêm các phương pháp sau đây đ? các DataSetHelper l?p mà b?n t?o ra trong các ""ph?n:
public DataTable CreateJoinTable(string TableName, DataTable SourceTable, string FieldList)
{
    /*
     * Creates a table based on fields of another table and related parent tables
     * 
     * FieldList syntax: [relationname.]fieldname[ alias][,[relationname.]fieldname[ alias]]...
    */ 
    if (FieldList==null)
    {
        throw new ArgumentException("You must specify at least one field in the field list.");
        //return CreateTable(TableName, SourceTable);
    }
    else
    {
        DataTable dt = new DataTable(TableName);
        ParseFieldList(FieldList, true);
        foreach(FieldInfo Field in m_FieldInfo)
        {
            if(Field.RelationName==null)
            {
                DataColumn dc = SourceTable.Columns[Field.FieldName];
                dt.Columns.Add(dc.ColumnName, dc.DataType, dc.Expression);
            }
            else
            {
                DataColumn dc = SourceTable.ParentRelations[Field.RelationName].ParentTable.Columns[Field.FieldName];
                dt.Columns.Add(dc.ColumnName, dc.DataType, dc.Expression);
            }
        }
        if (ds!=null)
            ds.Tables.Add(dt);
        return dt;
    }
}
				

Phương pháp InsertJoinInto

Ti?t đo?n này ch?a m? cho các InsertJoinInto phương pháp. Các InsertJoinInto phương pháp sao h? sơ đư?c s?p x?p và l?c t? b?ng m? ngu?n và liên quan đ?n b?ng đi?m đ?n b?ng. Khi b?n g?i các ParseFieldList b?t đ?ng s?n, b?n có th? phân tích danh sách trư?c đó đ? đư?c phân tích, n?u các danh sách có s?n. N?u danh sách trư?ng là tr?ng, m?t ngo?i l? đư?c ném.

Sau đây là quy ư?c g?i đi?n tho?i cho các InsertJoinInto phương pháp:
dsHelper.InsertJoinInto(ds.Tables["TestTable"], ds.Tables["Employees"], 
    "FirstName FName,LastName LName,DepartmentEmployee.DepartmentName Department", 
    "EmployeeID<5", "BirthDate");
				
M?u cu?c g?i sao h? sơ t? các nhân viên DataTable (và l?nh v?c DepartmentName m?t liên quan DataTable) đ? TestTable DataTable, đó là l?c vào "EmployeeID<5" and="" is="" sorted="" by=""></5">

LƯU ?: Các b? l?c và bi?u hi?n s?p x?p áp d?ng ch? ngu?n b?ng và không c?n b?t k? b?ng có liên quan.

Đ? g?i các InsertJoinInto phương pháp, thêm các phương pháp sau đây đ? các DataSetHelper l?p mà b?n t?o ra trong các ""ph?n:
public void InsertJoinInto(DataTable DestTable, DataTable SourceTable, 
    string FieldList, string RowFilter, string Sort)
{
    /*
    * Copies the selected rows and columns from SourceTable and inserts them into DestTable
    * FieldList has same format as CreatejoinTable
    */ 
    if (FieldList==null)
    {
        throw new ArgumentException("You must specify at least one field in the field list.");
        //InsertInto(DestTable, SourceTable, RowFilter, Sort);
    }
    else
    {
    ParseFieldList(FieldList, true);
    DataRow[] Rows = SourceTable.Select(RowFilter, Sort);
    foreach(DataRow SourceRow in Rows)
    {
            DataRow DestRow = DestTable.NewRow();
            foreach(FieldInfo Field in m_FieldInfo)
            {
                if(Field.RelationName==null)
                {
                    DestRow[Field.FieldName] = SourceRow[Field.FieldName];
                }
                else
                {
                    DataRow ParentRow = SourceRow.GetParentRow(Field.RelationName);
                    DestRow[Field.FieldName] = ParentRow[Field.FieldName];
                }
            }
            DestTable.Rows.Add(DestRow);
        }
    }
}
				

Phương pháp SelectJoinInto

Ti?t đo?n này ch?a m? cho các SelectJoinInto phương pháp. Phương pháp này là m?t s? k?t h?p c?a các CreateJoinTable và các InsertJoinInto phương pháp. Các SelectJoinInto phương pháp t?o ra m?t m?i DataTable d?a trên hi?n t?i DataTable các đ?i tư?ng và b?n sao h? sơ đư?c s?p x?p và l?c vào trong các m?i DataTable.

Sau đây là quy ư?c g?i đi?n tho?i cho các SelectJoinInto phương pháp:
dt = dsHelper.SelectInto("TestTable", ds.Tables["Employees"], 
    "FirstName FName,LastName LName,DepartmentEmployee.DepartmentName Department", "EmployeeID<5", "BirthDate");
				
Cu?c g?i m?u này t?o ra m?t DataTable đ?t tên TestTable v?i ba l?nh v?c. Ba l?nh v?c đư?c d?a trên FirstName và các l?nh v?c th? c?a nhân viên DataTable và các l?nh v?c DepartmentName c?a các DataTable đó đư?c tham chi?u qua DepartmentEmployee DataRelation. Sau đó m?u này sao h? sơ t? các nhân viên DataTable đ? TestTable DataTable, đó là l?c vào "EmployeeID<5" and="" is="" sorted="" by=""></5">

LƯU ?: Các b? l?c và bi?u hi?n s?p x?p áp d?ng ch? ngu?n b?ng và không liên quan đ?n b?ng.

Đ? g?i các SelectJoinInto phương pháp, thêm các phương pháp sau đây đ? các DataSetHelper l?p mà b?n t?o ra trong các ""ph?n:
public DataTable SelectJoinInto(string TableName, DataTable SourceTable, string FieldList, string RowFilter, string Sort)
{
    /*
     * Selects sorted, filtered values from one DataTable to another.
     * Allows you to specify relationname.fieldname in the FieldList to include fields from
     *  a parent table. The Sort and Filter only apply to the base table and not to related tables.
    */ 
    DataTable dt = CreateJoinTable(TableName, SourceTable, FieldList);
    InsertJoinInto(dt, SourceTable, FieldList, RowFilter, Sort);
    return dt;
}
				

Ki?m tra các ?ng d?ng

  1. Lưu và sau đó biên d?ch các DataSetHelper l?p h?c mà b?n đ? t?o trong ph?n trư?c.
  2. Th?c hi?n theo các bư?c sau đ? t?o ra m?t m?i Visual C# Windows Application:
    1. B?t đ?u Visual Studio.NET.
    2. Trên các Tệp tr?nh đơn, đi?m đ?n M?i, sau đó b?m Dự án.
    3. Trong các D? án m?i h?p tho?i h?p, b?m vào Visual C# các d? án dư?i Các lo?i d? án, sau đó b?m ?ng d?ng Windows dư?i Khuôn mẫu.
  3. Trong gi?i pháp Explorer, b?m chu?t ph?i vào các gi?i pháp, và sau đó nh?p vào Thêm d? án hi?n t?i. Thêm d? án DataSetHelper.
  4. Trên các Dự án tr?nh đơn, nh?p vào Thêm tài li?u tham kh?o.
  5. Trong các Thêm tài li?u tham kh?o h?p tho?i h?p, b?m vào các Các d? án tab, và sau đó thêm m?t tham chi?u đ?n các d? án DataSetHelper t?i ?ng d?ng Windows m?u.
  6. Trong nhà thi?t k? m?u, kéo ba Nút đi?u khi?n và m?t DataGrid đi?u khi?n t? h?p công c? m?u. Tên các nút btnCreateJoin, btnInsertJoinInto, và btnSelectJoinInto. Gi? tên m?c đ?nh cho các DataGrid ki?m soát (dataGrid1).
  7. Trong m?u m?, thêm dư?i đây B?ng cách s? d?ng n?i dung trên cùng c?a c?a s? m?:
    using System.Data;
    					
  8. Thêm khai báo bi?n sau đây đ? đ?nh ngh?a h?nh th?c:
    DataSet ds; DataSetHelper.DataSetHelper dsHelper;
    					
  9. Thêm m? sau đây đ? các Form_Load s? ki?n:
    ds = new DataSet();
    dsHelper = new DataSetHelper.DataSetHelper(ref ds);
    //Create source tables
    DataTable dt = new DataTable("Employees");
    dt.Columns.Add("EmployeeID",Type.GetType("System.Int32") );
    dt.Columns.Add("FirstName", Type.GetType("System.String"));
    dt.Columns.Add("LastName", Type.GetType("System.String"));
    dt.Columns.Add("BirthDate", Type.GetType("System.DateTime"));
    dt.Columns.Add("JobTitle", Type.GetType("System.String"));
    dt.Columns.Add("DepartmentID", Type.GetType("System.Int32"));
    dt.Rows.Add(new object[] {1, "Tommy", "Hill", new DateTime(1970, 12, 31),  "Manager", 42});
    dt.Rows.Add(new object[] {2, "Brooke", "Sheals", new DateTime(1977, 12, 31), "Manager", 23});
    dt.Rows.Add(new object[] {3, "Bill", "Blast", new DateTime(1982, 5, 6), "Sales Clerk", 42});
    dt.Rows.Add(new object[] {1, "Kevin", "Kline", new DateTime(1978, 5, 13), "Sales Clerk", 42});
    dt.Rows.Add(new object[] {1, "Martha", "Seward", new DateTime(1976, 7, 4), "Sales Clerk", 23});
    dt.Rows.Add(new object[] {1, "Dora", "Smith", new DateTime(1985, 10, 22), "Trainee", 42});
    dt.Rows.Add(new object[] {1, "Elvis", "Pressman", new DateTime(1972, 11, 5), "Manager", 15});
    dt.Rows.Add(new object[] {1, "Johnny", "Cache", new DateTime(1984, 1, 23), "Sales Clerk", 15});
    dt.Rows.Add(new object[] {1, "Jean", "Hill", new DateTime(1979, 4, 14), "Sales Clerk", 42});
    dt.Rows.Add(new object[] {1, "Anna", "Smith", new DateTime(1985, 6, 26), "Trainee", 15});
    ds.Tables.Add(dt);
    
    dt = new DataTable("Departments");
    dt.Columns.Add("DepartmentID", Type.GetType("System.Int32"));
    dt.Columns.Add("DepartmentName", Type.GetType("System.String"));
    dt.Rows.Add(new object[] {15, "Men's Clothing"});
    dt.Rows.Add(new object[] {23, "Women's Clothing"});
    dt.Rows.Add(new object[] {42, "Children's Clothing"});
    ds.Tables.Add(dt);
    
    ds.Relations.Add("DepartmentEmployee",     ds.Tables["Departments"].Columns["DepartmentID"], 
        ds.Tables["Employees"].Columns["DepartmentID"]);
    					
  10. Thêm m? sau đây đ? các btnCreateJoin_Click s? ki?n:
    dsHelper.CreateJoinTable("EmpDept",ds.Tables["Employees"], 
        "FirstName FName,LastName LName,BirthDate,DepartmentEmployee.DepartmentName Department");
    dataGrid1.SetDataBinding(ds, "EmpDept");
    					
  11. Thêm m? sau đây đ? các btnInsertJoinInto_Click s? ki?n:
    dsHelper.InsertJoinInto(ds.Tables["EmpDept"], ds.Tables["Employees"], 
        "FirstName FName,LastName LName,BirthDate,DepartmentEmployee.DepartmentName Department",
        "JobTitle='Sales Clerk'", "DepartmentID");
    dataGrid1.SetDataBinding(ds, "EmpDept");
    					
  12. Thêm m? sau đây đ? các btnSelectJoinInto_Click s? ki?n:
    dsHelper.SelectJoinInto("EmpDept2", ds.Tables["Employees"],
        "FirstName,LastName,BirthDate BDate,DepartmentEmployee.DepartmentName Department", 
        "JobTitle='Manager'", "DepartmentID");
    dataGrid1.SetDataBinding(ds, "EmpDept2");
    					
  13. Ch?y các ?ng d?ng và sau đó b?m m?i c?a các nút. Nh?n th?y r?ng các DataGrid là dân cư v?i các b?ng và d? li?u t? các m?.

    LƯU ?: B?n ch? có th? b?m các btnCreateJoin và các btnSelectJoinInto nút m?t th?i gian. N?u b?n b?m vào m?t trong các nút này nhi?u hơn m?t th?i gian, b?n nh?n đư?c m?t thông báo l?i b?n đ?nh thêm cùng m?t b?ng hai l?n. Ngoài ra, b?n ph?i nh?p vào btnCreateJoin trư?c khi b?n b?m vào btnInsertJoinInto; N?u không, các đi?m đ?n DataTable không đư?c t?o ra. N?u b?n b?m vào các btnInsertJoinInto nút nhi?u l?n, b?n cư các DataGrid nh?n trùng l?p records.

Nâng cao ? tư?ng

  • Các ColumnName và các DataType thu?c tính là thu?c tính duy nh?t đư?c sao vào các đi?m đ?n DataTable. B?n có th? m? r?ng các CreateTable phương pháp đ? sao thu?c tính b? sung, ch?ng h?n như các MaxLength b?t đ?ng s?n, ho?c b?n có th? t?o m?i chính c?t.
  • Các Bi?u hi?n b?t đ?ng s?n không sao; Thay vào đó, k?t qu? đánh đư?c sao chép. V? v?y, b?n không có thêm các l?nh v?c đư?c tham chi?u c?a bi?u th?c cho b?ng đi?m đ?n. Ngoài ra, đi?m đ?n c?t có th? xu?t hi?n trư?c đó trong danh sách k?t qu? hơn b?t k? các c?t c?t này ph? thu?c vào cách khác. B?n có th? s?a đ?i các CreateTable phương pháp đ? sao chép các Bi?u hi?n (b? qua InsertInto c?t c?t v?i m?t Bi?u hi?n), m?c dù đi?u này có th? h?n ch? đư?c đ? c?p trư?c đó trong văn b?n này.
  • B?n có th? h?p nh?t các ch?c năng c?a các CreateJoinTable, các InsertJoinInto, và các SelectJoinInto phương pháp thành các CreateTable, các InsertInto, và các SelectInto phương pháp. Đ? thêm thông tin v? các CreateTable, các InsertInto, và các SelectInto phương pháp, b?m vào s? bài vi?t dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
    326009 Th? nào: Th?c hi?n m?t t?p d? li?u ch?n thành helper l?p trong Visual C#.NET
    N?u b?n không mu?n k?t h?p các phương pháp này, nhưng n?u b?n có c? hai b? phương pháp trong m?t l?p duy nh?t, b?n có th? kích ho?t các CreateJoinTable và các InsertJoinInto phương pháp đ? x? l? m?t danh sách các l?nh v?c có s?n ph?m nào b?ng cách lo?i b? các Ném phát bi?u và b?i uncommenting các cu?c g?i đ?n các CreateTable và các InsertInto phương pháp trong nh?ng d?ng m?:
        if (FieldList==null)
        {
            throw new ArgumentException("You must specify at least one field in the field list.");
            //return CreateTable(TableName, SourceTable);
        }
    					
    - và -
        if (FieldList==null)
        {
            throw new ArgumentException("You must specify at least one field in the field list.");
            //InsertInto(DestTable, SourceTable, RowFilter, Sort);
        }
    					

Khắc phục sự cố

  • Fieldname và danh sách trư?ng bí danh, b? ph?n ph?i tuân th? DataColumn quy ư?c đ?t tên. Phân tích cú pháp c?ng h?n ch? các tên, trong đó tên không ch?a m?t kho?ng th?i gian (.), m?t d?u ph?y (,), hay m?t v? tr? ().
  • N?u b?n b?m vào m?t nút nhi?u hơn m?t th?i gian, cùng m?t b?ng s? đư?c thêm hai l?n vào các S? li?u, mà k?t qu? trong m?t ngo?i l?. Đ? làm vi?c xung quanh v?n đ? này, b?n có th? thêm m? vào các ?ng d?ng th? nghi?m đ? ki?m tra xem li?u m?t DataTable cùng tên đ? t?n t?i. Ngoài ra, b?n có th? t?o các DataSetHelper l?p h?c mà không có m?t tham chi?u đ?n m?t S? li?u và sau đó ràng bu?c các DataGrid.DataSource b?t đ?ng s?n tr?c ti?p cho các DT bi?n thay v? b?ng cách s? d?ng các SetDataBinding phương pháp g?i.
  • N?u b?ng m? ngu?n s? d?ng các lo?i d? li?u tu? ch?nh (có ngh?a là, là m?t l?p h?c), b?n ph?i thêm m? vào các InsertJoinInto phương pháp đ? th?c hi?n m?t b?n sao sâu c?a d? li?u. N?u không, ch? là m?t tài li?u tham kh?o đư?c sao chép.

Thu?c tính

ID c?a bài: 326080 - L?n xem xét sau cùng: 28 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbhowtomaster kbsystemdata kbmt KB326080 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:326080

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com