DataTable が、.NET Standard で使えるようになっていることに気が付いたので少し調べてみています。
前回(DataTable の API の比較)
■ DataRow
前回は DataTable を見てみましたが、その Table の一つ一つの行のデータを表す DataRow クラスも切っても切れない強いつながりのあるクラスです。今回はこの DataRow クラスを見てみましょう。
基底クラス インタフェース
| .NET Framework | .NET Stabdard | .NET Core |
|---|---|---|
| なし | なし | なし |
一致:1 / 差:0
コンストラクタ
| .NET Framework | .NET Stabdard | .NET Core |
|---|---|---|
| protected internal DataRow(DataRowBuilder builder); | protected internal DataRow(DataRowBuilder builder); | protected internal DataRow(DataRowBuilder builder); |
一致:1 / 差:0
インデクサー
| .NET Framework | .NET Stabdard | .NET Core |
|---|---|---|
| public object this[DataColumn column] { get; set; } | public object this[DataColumn column] { get; set; } | public object this[DataColumn column] { get; set; } |
| public object this[string columnName] { get; set; } | public object this[string columnName] { get; set; } | public object this[string columnName] { get; set; } |
| public object this[int columnIndex] { get; set; } | public object this[int columnIndex] { get; set; } | public object this[int columnIndex] { get; set; } |
| public object this[DataColumn column, DataRowVersion version] { get; } | public object this[DataColumn column, DataRowVersion version] { get; } | public object this[DataColumn column, DataRowVersion version] { get; } |
| public object this[string columnName, DataRowVersion version] { get; } | public object this[string columnName, DataRowVersion version] { get; } | public object this[string columnName, DataRowVersion version] { get; } |
| public object this[int columnIndex, DataRowVersion version] { get; } | public object this[int columnIndex, DataRowVersion version] { get; } | public object this[int columnIndex, DataRowVersion version] { get; } |
一致:6 / 差:0
プロパティ
| .NET Framework | .NET Stabdard | .NET Core |
|---|---|---|
| public DataTable Table { get; } | public DataTable Table { get; } | public DataTable Table { get; } |
| public DataRowState RowState { get; } | public DataRowState RowState { get; } | public DataRowState RowState { get; } |
| public string RowError { get; set; } | public string RowError { get; set; } | public string RowError { get; set; } |
| public object ItemArray { get; set; } | public object ItemArray { get; set; } | public object ItemArray { get; set; } |
| public bool HasErrors { get; } | public bool HasErrors { get; } | public bool HasErrors { get; } |
一致:5 / 差:0
メソッド
| .NET Framework | .NET Stabdard | .NET Core |
|---|---|---|
| public void AcceptChanges(); | public void AcceptChanges(); | public void AcceptChanges(); |
| public void BeginEdit(); | public void BeginEdit(); | public void BeginEdit(); |
| public void CancelEdit(); | public void CancelEdit(); | public void CancelEdit(); |
| public void ClearErrors(); | public void ClearErrors(); | public void ClearErrors(); |
| public void Delete(); | public void Delete(); | public void Delete(); |
| public void EndEdit(); | public void EndEdit(); | public void EndEdit(); |
| public DataRow GetChildRows(string relationName); | public DataRow GetChildRows(string relationName); | public DataRow GetChildRows(string relationName); |
| public DataRow GetChildRows(string relationName, DataRowVersion version); | public DataRow GetChildRows(string relationName, DataRowVersion version); | public DataRow GetChildRows(string relationName, DataRowVersion version); |
| public DataRow GetChildRows(DataRelation relation); | public DataRow GetChildRows(DataRelation relation); | public DataRow GetChildRows(DataRelation relation); |
| public DataRow GetChildRows(DataRelation relation, DataRowVersion version); | public DataRow GetChildRows(DataRelation relation, DataRowVersion version); | public DataRow GetChildRows(DataRelation relation, DataRowVersion version); |
| public string GetColumnError(string columnName); | public string GetColumnError(string columnName); | public string GetColumnError(string columnName); |
| public string GetColumnError(DataColumn column); | public string GetColumnError(DataColumn column); | public string GetColumnError(DataColumn column); |
| public string GetColumnError(int columnIndex); | public string GetColumnError(int columnIndex); | public string GetColumnError(int columnIndex); |
| public DataColumn GetColumnsInError(); | public DataColumn GetColumnsInError(); | public DataColumn GetColumnsInError(); |
| public DataRow GetParentRow(string relationName, DataRowVersion version); | public DataRow GetParentRow(string relationName, DataRowVersion version); | public DataRow GetParentRow(string relationName, DataRowVersion version); |
| public DataRow GetParentRow(string relationName); | public DataRow GetParentRow(string relationName); | public DataRow GetParentRow(string relationName); |
| public DataRow GetParentRow(DataRelation relation, DataRowVersion version); | public DataRow GetParentRow(DataRelation relation, DataRowVersion version); | public DataRow GetParentRow(DataRelation relation, DataRowVersion version); |
| public DataRow GetParentRow(DataRelation relation); | public DataRow GetParentRow(DataRelation relation); | public DataRow GetParentRow(DataRelation relation); |
| public DataRow GetParentRows(string relationName, DataRowVersion version); | public DataRow GetParentRows(string relationName, DataRowVersion version); | public DataRow GetParentRows(string relationName, DataRowVersion version); |
| public DataRow GetParentRows(string relationName); | public DataRow GetParentRows(string relationName); | public DataRow GetParentRows(string relationName); |
| public DataRow GetParentRows(DataRelation relation); | public DataRow GetParentRows(DataRelation relation); | public DataRow GetParentRows(DataRelation relation); |
| public DataRow GetParentRows(DataRelation relation, DataRowVersion version); | public DataRow GetParentRows(DataRelation relation, DataRowVersion version); | public DataRow GetParentRows(DataRelation relation, DataRowVersion version); |
| public bool HasVersion(DataRowVersion version); | public bool HasVersion(DataRowVersion version); | public bool HasVersion(DataRowVersion version); |
| public bool IsNull(DataColumn column); | public bool IsNull(DataColumn column); | public bool IsNull(DataColumn column); |
| public bool IsNull(int columnIndex); | public bool IsNull(int columnIndex); | public bool IsNull(int columnIndex); |
| public bool IsNull(string columnName); | public bool IsNull(string columnName); | public bool IsNull(string columnName); |
| public bool IsNull(DataColumn column, DataRowVersion version); | public bool IsNull(DataColumn column, DataRowVersion version); | public bool IsNull(DataColumn column, DataRowVersion version); |
| public void RejectChanges(); | public void RejectChanges(); | public void RejectChanges(); |
| public void SetAdded(); | public void SetAdded(); | public void SetAdded(); |
| public void SetColumnError(int columnIndex, string error); | public void SetColumnError(int columnIndex, string error); | public void SetColumnError(int columnIndex, string error); |
| public void SetColumnError(DataColumn column, string error); | public void SetColumnError(DataColumn column, string error); | public void SetColumnError(DataColumn column, string error); |
| public void SetColumnError(string columnName, string error); | public void SetColumnError(string columnName, string error); | public void SetColumnError(string columnName, string error); |
| public void SetModified(); | public void SetModified(); | public void SetModified(); |
| public void SetParentRow(DataRow parentRow, DataRelation relation); | public void SetParentRow(DataRow parentRow, DataRelation relation); | public void SetParentRow(DataRow parentRow, DataRelation relation); |
| public void SetParentRow(DataRow parentRow); | public void SetParentRow(DataRow parentRow); | public void SetParentRow(DataRow parentRow); |
| protected void SetNull(DataColumn column); | protected void SetNull(DataColumn column); | protected void SetNull(DataColumn column); |
一致:36 / 差:0
■ 合計
完全に一致!
一致:49 / 差:0
という結果になりました。
古くからの .NET Framework ユーザーには DataTable/DataRow を愛している方も多いですが、これなら安心ですね!
ただし、今回までで DataTable と DataRow クラスだけを比較しています。実は、DataTable に関する機能はそれだけでは語り切れないのでそのあたりは、今後また確認して行こうと思います。