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;
    }
     
    复制代码
  • 相关阅读:
    WIN8 下 Hyper-V和Vmware Workstation
    小技巧总结
    工具软件
    php开发入门
    docker的用法总结
    [工具] 同步本地文件夹与VPS中的文件夹
    读书笔记之《The Art of Readable Code》Part 3
    读书笔记之《The Art of Readable Code》Part 2
    正则表达式小试牛刀
    读书笔记之《The Art of Readable Code》part 1
  • 原文地址:https://www.cnblogs.com/Echo529/p/6382291.html
Copyright © 2011-2022 走看看