RowState和DataRowVersion使用示例

using System;
using System.Data;

namespace TestApp
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable cars = new DataTable("Cars");
            DataColumn vin = new DataColumn("Vin");
            vin.DataType = typeof(string);
            vin.AllowDBNull = false;
            vin.Caption = "VIN";
            cars.Columns.Add(vin);

            DataColumn manufactor = new DataColumn("Manufactor");
            manufactor.DataType = typeof(string);
            manufactor.MaxLength = 100;
            manufactor.AllowDBNull = true;
            cars.Columns.Add(manufactor);

            DataRow dr = cars.NewRow();
            dr[0] = "123456789ABCDE";
            dr[1] = "VW";
            cars.Rows.Add(dr);
            Console.WriteLine(GetDataRowInfo(dr, "Vin"));
            
            cars.AcceptChanges();
            dr.BeginEdit();
            dr[0] = "987654321ABCDE";
            dr[1] = "NISSAN";
            Console.WriteLine(GetDataRowInfo(dr, "Vin"));
            dr.EndEdit();
            Console.WriteLine(GetDataRowInfo(dr, "Vin"));
        } 

        static string GetDataRowInfo(DataRow row, string columnName)
        {
            string retVal = string.Format("RowState: {0} \t\n", row.RowState);
            foreach (string versionString in Enum.GetNames(typeof(DataRowVersion)))
            {
                DataRowVersion version = (DataRowVersion)Enum.Parse(typeof(DataRowVersion), versionString);
                if (row.HasVersion(version))
                    retVal += string.Format("Version: {0} Value: {1} \r\n", version, row[columnName, version]);
                else
                    retVal += string.Format("Version: {0} does not exist. \r\n", version);
            }
            return retVal;
        }
    }
}

运行结果:

RowState: Added
Version: Original does not exist.
Version: Current Value: 123456789ABCDE
Version: Proposed does not exist.
Version: Default Value: 123456789ABCDE

RowState: Unchanged
Version: Original Value: 123456789ABCDE
Version: Current Value: 123456789ABCDE
Version: Proposed Value: 987654321ABCDE
Version: Default Value: 987654321ABCDE

RowState: Modified
Version: Original Value: 123456789ABCDE
Version: Current Value: 987654321ABCDE
Version: Proposed does not exist.
Version: Default Value: 987654321ABCDE

转载于:https://www.cnblogs.com/lqs2011/p/4195851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值