protected override object GetPropertyValue(object obj, string name, Table table, Row row) { DataRow dataRow = (DataRow)obj; if (dataRow.IsNull(name)) { return null; } return dataRow[name]; }
protected override object GetPropertyValue(object obj, string name, Table table, Row row) { IDictionary dictionary = (IDictionary)obj; if (!dictionary.Contains(name)) { return null; } return dictionary[name]; }
public PropertyInfo GetPropertyInfo(string columnName, Type type, Table table, Row row) { try { return this[type][columnName]; } catch (Exception e) { throw new ConfigException(e, "M_Fixture_Temp_ObjectFactory_NoSuchProperty", columnName, type, table, row); } }
/// <summary> /// 行データを追加する。 /// </summary> /// <param name="index">行番号</param> /// <param name="deleted">削除指定行かどうか</param> /// <returns>追加した行データ</returns> public Row AddRow(int index, bool deleted) { Row row = new Row(index, deleted); rows.Add(row); return row; }
// FIXME : この処理は本当は DataTableValidator でやるべき private DataRow SelectResultRow(DataTable result, DataRow keyRow, Table tableInfo, Row rowInfo, List<string> keyColumns) { int rowCount = result.Rows.Count; if (rowInfo.Deleted) { if (rowCount == 0) { return null; } else { Assertie.Fail("M_Fixture_Temp_DatabaseValidator_UnexpectedData", result.TableName, tableInfo, rowInfo, ToString(keyColumns, keyRow)); } } if (rowCount == 0) { string message = (keyColumns.Count == result.Columns.Count) ? "M_Fixture_Temp_DatabaseValidator_NotFound_With_Comment" : "M_Fixture_Temp_DatabaseValidator_NotFound"; Assertie.Fail(message, result.TableName, tableInfo, rowInfo, ToString(keyColumns, keyRow)); } if (rowCount > 1) { Assertie.Fail("M_Fixture_Temp_DatabaseValidator_OneMoreData", result.TableName, tableInfo, rowInfo, ToString(keyColumns, keyRow)); } return result.Rows[0]; }
private void Select(DbCommand command, List<string> keyColumns, DataTable keyTable, DataRow keyRow, DataTable resultTable, Table tableInfo, Row rowInfo, string queryPrefix) { SetQueryString(keyTable, keyRow, command, queryPrefix, keyColumns); DataTable result = ExecuteQuery(command); result.TableName = keyTable.TableName; DataRow source = SelectResultRow(result, keyRow, tableInfo, rowInfo, keyColumns); if (resultTable.Columns.Count == 0 && source != null) { foreach(DataColumn column in source.Table.Columns) { resultTable.Columns.Add(new DataColumn(column.ColumnName, column.DataType)); } } DataRow destination = resultTable.NewRow(); Copy(source, destination); resultTable.Rows.Add(destination); }
private void InsertRow(DataTable table, DbCommand command, DataRow row, Table tableInfo, Row rowInfo) { try { command.Parameters.Clear(); foreach (DataColumn column in table.Columns) { AddParameter(command, column.ColumnName, column.DataType, row[column]); } ExecuteNonQuery(command); } catch (Exception e) { throw new ConfigException(e, "M_Fixture_Temp_Database_InsertRow", table.TableName, tableInfo, rowInfo); } }
private void Delete(DataTable table, DataRow row, Table tableInfo, Row rowInfo) { try { DbCommand command = connection.CreateCommand(); String queryPrefix = "delete from " + table.TableName + " where "; List<string> columnNames = new List<string>(); foreach (DataColumn column in table.Columns) { columnNames.Add(column.ColumnName); } SetQueryString(table, row, command, queryPrefix, columnNames); ExecuteNonQuery(command); } catch (Exception e) { throw new ConfigException(e, "M_Fixture_Temp_Database_DeleteRow", table.TableName, tableInfo, rowInfo); } }