Beispiel #1
0
 /// <summary>
 ///   从dataTable 内获取行记录转化为QueryGroup
 /// </summary>
 /// <param name = "dataTable">DataTable</param>
 /// <param name = "dr">行记录</param>
 /// <returns><see cref = "QueryGroupConditionCollections" /></returns>
 protected static QueryGroupConditionCollections GetKeyColumnToQueryGroup(DataTable dataTable, DataRow dr)
 {
     var queryGroup = new QueryGroupConditionCollections();
     var fields = new FieldConditionCollections();
     foreach (var dataCol in dataTable.PrimaryKey)
     {
         if (dr.RowState == DataRowState.Deleted)
         {
             fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]);
         }
         else
         {
             if (dr[dataCol.ColumnName].GetType() == typeof(string))
             {
                 if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Original].ToString()))
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]);
                 else if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Current].ToString()))
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Current]);
                 else if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Default].ToString()))
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Default]);
             }
             else
             {
                 if (dr[dataCol.ColumnName, DataRowVersion.Original] != null)
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]);
                 else if (dr[dataCol.ColumnName, DataRowVersion.Current] != null)
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Current]);
                 else if (dr[dataCol.ColumnName, DataRowVersion.Default] != null)
                     fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Default]);
             }
         }
     }
     queryGroup.Add(fields);
     return queryGroup;
 }
Beispiel #2
0
 /// <summary>
 ///   构造
 /// </summary>
 /// <param name = "fieldConditions">字段结构集合<see cref = "FieldConditionCollections" /></param>
 public QueryGroupCondition(FieldConditionCollections fieldConditions)
     : this(fieldConditions, WhereUnionType.And)
 {
 }
Beispiel #3
0
 /// <summary>
 ///   构造
 /// </summary>
 /// <param name = "fieldConditions">字段结构集合<see cref = "FieldConditionCollections" /></param>
 /// <param name = "nextUnionType">下个查询组的条件连接</param>
 public QueryGroupCondition(FieldConditionCollections fieldConditions, WhereUnionType @nextUnionType)
 {
     FieldConditions = fieldConditions;
     NextUnionType = @nextUnionType;
 }
Beispiel #4
0
 /// <summary>
 ///   构造
 /// </summary>
 public QueryGroupCondition()
 {
     FieldConditions = new FieldConditionCollections();
 }