zoukankan      html  css  js  c++  java
  • C# DataRow

    http://www.cnblogs.com/fengkuangshubiaodian/archive/2012/08/01/2609911.html

    DataRow 模拟的是数据库中的一行。使用 HasVersion 和 IsNull 属性确定特定行值的状态。

    1. 添加行

      创建新的 DataRow,要使用 DataTable 对象的 NewRow 方法。然后,使用 Add 方法将新的 DataRow 添加到 DataRowCollection 中。最后,调用 DataTable 对象的 AcceptChanges 方法以确认是否已添加。具体描述参考我另一篇文章 C# DataTable。

    复制代码
    private void CreateNewDataRow()
    {
        // Use the MakeTable function below to create a new table.
        DataTable table;
        table = MakeNamesTable();
    
        // Once a table has been created, use the 
        // NewRow to create a DataRow.
        DataRow row;
        row = table.NewRow();
    
        // Then add the new row to the collection.
        row["fName"] = "John";
        row["lName"] = "Smith";
        table.Rows.Add(row);
    
        foreach(DataColumn column in table.Columns)
            Console.WriteLine(column.ColumnName);
        dataGrid1.DataSource=table;
    }
    
    private DataTable MakeNamesTable()
    {
        // Create a new DataTable titled 'Names.'
        DataTable namesTable = new DataTable("Names"); 
    
        // Add three column objects to the table.
        DataColumn idColumn = new  DataColumn();
        idColumn.DataType = System.Type.GetType("System.Int32");
        idColumn.ColumnName = "id";
        idColumn.AutoIncrement = true;
        namesTable.Columns.Add(idColumn);
    
        DataColumn fNameColumn = new DataColumn();
        fNameColumn.DataType = System.Type.GetType("System.String");
        fNameColumn.ColumnName = "Fname";
        fNameColumn.DefaultValue = "Fname";
        namesTable.Columns.Add(fNameColumn);
    
        DataColumn lNameColumn = new DataColumn();
        lNameColumn.DataType = System.Type.GetType("System.String");
        lNameColumn.ColumnName = "LName";
        namesTable.Columns.Add(lNameColumn);
    
        // Create an array for DataColumn objects.
        DataColumn [] keys = new DataColumn [1];
        keys[0] = idColumn;
        namesTable.PrimaryKey = keys;
    
        // Return the new DataTable.
        return namesTable;
    }

    /////////////////////////////////////////////////////// DataRow workRow; for (int i = 0; i <= 9; i++) { workRow = workTable.NewRow(); workRow[0] = i; workRow[1] = "CustName" + i.ToString(); workTable.Rows.Add(workRow); }
    复制代码

    2. 删除行

      您可通过调用 DataRowCollection 的 Remove 方法或调用 DataRow 对象的 Delete 方法,从 DataRowCollection 中删除 DataRow。Remove 方法将行从集合中移除。与此相反,Delete 标记要移除的 DataRow。在调用AcceptChanges 方法时发生实际移除。通过调用 Delete,您可在实际删除行之前以编程方式检查哪些行被标记为移除。具体描述参考我另外一篇文章 C# DataTable。

    复制代码
    private void DemonstrateAcceptChanges()
    {
        //Run a function to create a DataTable with one column.
        DataTable table = MakeTable();
        DataRow row;
    
        // Create a new DataRow.
        row = table.NewRow();
        // Detached row.
        Console.WriteLine("New Row " + row.RowState);
    
        table.Rows.Add(row);
        // New row.
        Console.WriteLine("AddRow " + row.RowState);
    
        table.AcceptChanges();
        // Unchanged row.
        Console.WriteLine("AcceptChanges " + row.RowState);
    
        row["FirstName"] = "Scott";
        // Modified row.
        Console.WriteLine("Modified " + row.RowState);
    
        row.Delete();
        // Deleted row.
        Console.WriteLine("Deleted " + row.RowState);
    }
    
    private DataTable MakeTable()
    {
        // Make a simple table with one column.
        DataTable table = new DataTable("table");
        DataColumn fnameColumn = new DataColumn(
            "FirstName", Type.GetType("System.String"));
        table.Columns.Add(fnameColumn);
        return table;
    }
     
    复制代码
  • 相关阅读:
    AtCoder Beginner Contest 205
    Codeforces Round #725 (Div. 3)
    Educational Codeforces Round 110 (Rated for Div. 2)【A
    Codeforces Round #722 (Div. 2)
    AtCoder Beginner Contest 203(Sponsored by Panasonic)
    AISing Programming Contest 2021(AtCoder Beginner Contest 202)
    PTA 520 钻石争霸赛 2021
    Educational Codeforces Round 109 (Rated for Div. 2)【ABCD】
    AtCoder Beginner Contest 200 E
    Educational Codeforces Round 108 (Rated for Div. 2)【ABCD】
  • 原文地址:https://www.cnblogs.com/Echo529/p/6382291.html
Copyright © 2011-2022 走看看