static bool IsCanCache(MDataTable dt) { if (dt == null || dt.Rows.Count > 100000) { return(false);// 大于10万条的不缓存。 } foreach (MCellStruct item in dt.Columns) { if (DataType.GetGroup(item.SqlType) == 999)//只存档基础类型 { return(false); } } return(true); }
public static void ReadAndRemoveKey() { MAction action = ActionInstance;// string cacheTime = DBTool.Keyword("CacheTime", action.DataBaseType); MDataTable dt = action.Select(cacheTime + ">" + keyTime + " order by " + cacheTime + " asc"); if (dt.Rows.Count > 0) { foreach (MDataRow row in dt.Rows) { RemoveCache(row.Get <string>(0)); //移除。 } keyTime = dt.Rows[dt.Rows.Count - 1].Get <string>(1); //将时间重置为为最后一次最大的时间。 } }
private void btnSetOrdinal_Click(object sender, EventArgs e) { //把第二位的列移前 mdc.SetOrdinal(mdc[1].ColumnName, 0); if (mdc.Table != null && mdc.Table.Rows.Count > 1) { new MDataTable().Bind(dgvData); MDataTable dt = mdc.Table.Clone(); dt.Bind(dgvData); } else { mdc.ToTable().Bind(dgvData); } }
private static MDataTable get_fenlei_mdt() { var mdt = new MDataTable(); if (HttpContext.Current.Cache[tc_fenlei] == null) { mdt = new Model.TcFenlei().Select("order by Paixu"); HttpContext.Current.Cache.Insert(tc_fenlei, mdt, null, DateTime.Now.AddDays(c_day), TimeSpan.Zero); return(mdt); } else { mdt = HttpContext.Current.Cache[tc_fenlei] as MDataTable; } return(mdt); }
private static void BindList(Win.ListControl listControl, MDataTable source) { try { if (source.Columns.Count > 0) { listControl.DataSource = new MDataView(ref source); listControl.ValueMember = source.Columns[0].ColumnName; listControl.DisplayMember = source.Columns[source.Columns.Count > 1 ? 1 : 0].ColumnName; } } catch (Exception err) { Log.WriteLogToTxt(err); } }
private void AddSuperAdminPromission(string menuid, string actionids) { if (!string.IsNullOrEmpty(actionids)) { MDataTable dt = new MDataTable(U_AriesEnum.Sys_RoleAction.ToString()); dt.Columns.Add("RoleID"); dt.Columns.Add("MenuID"); dt.Columns.Add("ActionID"); foreach (string actionid in actionids.Split(',')) { dt.NewRow(true).Set(0, UserAuth.SuperAdminRoleID) .Set(1, menuid).Set(2, actionid); } dt.AcceptChanges(AcceptOp.Insert, CrossDb.GetConn(U_AriesEnum.Sys_RoleAction.ToString())); } }
public void insert() { String con = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.31)(PORT = 1521)))(CONNECT_DATA =(SID = fluxtms1)(SERVICE_NAME=fluxtms)));User ID=TMS_ZC;password=TMS_ZC"; MDataTable dt = null; using (MAction action = new MAction("TMP_CODE1", con)) { action.BeginTransation(); action.Set("FCODE1", 1); action.Set("FCODE2", 1); action.Set("FCODE3", 1); action.Insert(InsertOp.None); action.EndTransation(); } Console.WriteLine("123"); }
private void AddSuperAdminPromission(string menuID, string actionIDs) { if (!string.IsNullOrEmpty(actionIDs)) { MDataTable dt = new MDataTable(TableNames.Sys_RoleAction.ToString()); dt.Columns.Add("RoleID"); dt.Columns.Add("MenuID"); dt.Columns.Add("ActionID"); foreach (string actionID in actionIDs.Split(',')) { dt.NewRow(true).Set(0, UserAuth.SuperAdminRoleID) .Set(1, menuID).Set(2, actionID); } dt.AcceptChanges(AcceptOp.Insert); } }
/// <summary> /// 获取表的列头数据(输出EasyUI的列头格式) /// </summary> public void GetHeader() { MDataTable dt = GridConfig.GetList(ObjName, GridConfig.SelectType.All); if (dt == null || dt.Rows.Count == 0) { dt = GridConfig.Create(ObjCode, dt.GetSchema(false)); } else { //dt = GridConfig.Check(ObjCode, dt); } //顺带处理视图语句与菜单名称的绑定 KeyValueConfig.SetTableDescription(ObjName, p.MenuName); jsonResult = dt.ToJson(false, false, true); }
private void btnRemove_Click(object sender, EventArgs e) { MDataTable delDt = dt.GetSchema(false); for (int i = 0; i < dgView.Rows.Count; i++) { if (Convert.ToString(dgView.Rows[i].Cells[0].Value) == "True") { dgView.Rows.RemoveAt(i); delDt.NewRow(true).LoadFrom(dt.Rows[i]); } } dgView.Refresh(); delDt.AcceptChanges(AcceptOp.Delete); delDt.AcceptChanges(AcceptOp.Insert | AcceptOp.Truncate); }
override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) { MDataTable dt = objectProvider.GetObject() as MDataTable; if (dt != null) { try { FormCreate.BindTable(windowService, dt, null); } catch (Exception err) { MessageBox.Show(err.Message); } } }
protected override MDataTable Select(GridConfig.SelectType st) { switch (ObjName) { case "V_Test": //处理Demo中文本数据库 MDataTable dt = null; using (MAction action = new MAction("Demo_TestA")) { dt = action.Select(); } dt.JoinOnName = "id"; MDataTable joinDt = dt.Join("Demo_TestB", "id"); return(joinDt.Select(PageIndex, PageSize, GetWhere() + GetOrderBy("id"), GridConfig.GetSelectColumns(ObjName, st))); } return(base.Select(st)); }
void ResetMainState() { MDataTable table = null; using (ProjectConfig config = new ProjectConfig()) { table = config.Select();//更新其它的状态。 } if (table.Rows.Count > 0) { foreach (MDataRow row in table.Rows) { row.Set("IsMain", false); } table.AcceptChanges(AcceptOp.Update); } }
/// <summary> /// 去除列的重复信息 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dt"></param> /// <param name="mainIndexes">主索引(如果主索引不同,则不去重)</param> /// <param name="indexes">要去重的索引(可以是整数、列名)</param> /// <returns></returns> public static void ClearRepeateInfo <T>(this MDataTable dt, T[] mainIndexes, params T[] indexes) { if (indexes.Length < 1) { indexes = mainIndexes; mainIndexes = null; } //先初始化前一行要去重的值为null var preValues = new object[indexes.Length]; var mainIsRepeat = mainIndexes == null; var preMainValues = mainIndexes == null ? null : new object[mainIndexes.Length]; //去除重复信息 foreach (var row in dt.Rows) { //判断主索引对应的值是否相同 if (mainIndexes != null) { mainIsRepeat = true; var preMainIndex = 0; foreach (var mainIndex in mainIndexes) { if (mainIsRepeat && !Equals(preMainValues[preMainIndex], row[mainIndex].Value)) { mainIsRepeat = false; } preMainValues[preMainIndex] = row[mainIndex].Value; preMainIndex++; } } //去重 var preIndex = 0; foreach (var index in indexes) { var isRepeat = mainIsRepeat && Equals(preValues[preIndex], row[index].Value); preValues[preIndex] = row[index].Value; if (isRepeat) { row[index].Value = null; } preIndex++; } } }
public void Fill(MDataTable table) { if (table == null) { ErrorMsg = "查询对象为Null"; return; } Count = table.Rows.Count; for (int i = 0; i < table.Rows.Count; i++) { for (int j = 0; j < table.Columns.Count; j++) { addItem(table.Columns[j].ColumnName, Convert.ToString(table.Rows[i][j].Value)); } addItemOk(); } }
private void GatherChildrenID(MDataTable dt, string parentID, StringBuilder sb, string parentName = "ParentID") { if (!string.IsNullOrEmpty(parentID)) { List <MDataRow> rows = dt.FindAll(parentName + "='" + parentID + "'"); if (rows != null) { string id = string.Empty; foreach (MDataRow row in rows) { id = row.Get <string>(0); sb.Append("'" + id + "',"); GatherChildrenID(dt, id, sb, parentName); } } } }
/// <summary> /// 保存目录列表 /// </summary> /// <param name="menulist"></param> /// <returns></returns> public bool SaveNovelContents(List <NovelContent> menulist) { int maxid = GetNovelContentMaxId(); foreach (var menu in menulist) { if (menu.Id > 0) { continue; } menu.Id = maxid++; } var dt = MDataTable.CreateFrom(menulist); dt.TableName = menulist[0].TableName; return(dt.AcceptChanges(AcceptOp.Auto)); }
/// <summary> /// 接收Post过来的Json权限 /// </summary> /// <returns></returns> private MDataTable GetTable(string roleID) { MDataTable rowAction = new MDataTable(TableNames.Sys_RoleAction.ToString()); rowAction.Columns.Add("RoleID", SqlDbType.NVarChar); rowAction.Columns.Add("MenuID", SqlDbType.NVarChar); rowAction.Columns.Add("ActionID", SqlDbType.NVarChar); MDataTable dt; if (Query <string>("all") == "1") { if (UserAuth.IsSuperAdmin) { dt = SysMenu.MenuTable; } else { dt = SysMenu.GetUserMenu(true); } } else { dt = MDataTable.CreateFrom(Query <string>("data")); } if (dt != null && dt.Rows.Count > 0) { string menuID = string.Empty; foreach (MDataRow row in dt.Rows) { menuID = row.Get <string>("MenuID"); if (!string.IsNullOrEmpty(menuID)) { string[] ActionIDs = row.Get <string>("ActionIDs", "").Split(','); foreach (string actionID in ActionIDs) { if (!string.IsNullOrEmpty(actionID)) { rowAction.NewRow(true).Set(0, roleID).Set(1, menuID).Set(2, actionID); } } } } } return(rowAction); }
/// <summary> /// 数据结构行刷新 /// </summary> /// <param name="objName"></param> /// <param name="objCode"></param> /// <param name="dt">原有数据</param> /// <returns></returns> public static bool Flesh(string objName, string objCode, MDataTable dt, out string msg) { bool result = false; msg = LangConst.NoNewColumn; MDataTable newDt = dt.GetSchema(false); //移除表结构缓存 string tableKey = CacheManage.GetKey(CacheKeyType.Schema, objName); string codeKey = CacheManage.GetKey(CacheKeyType.Schema, objCode); CacheManage.LocalInstance.Remove(tableKey); CacheManage.LocalInstance.Remove(codeKey); if (!string.IsNullOrEmpty(AppConfig.DB.SchemaMapPath)) { IOHelper.Delete(AppConfig.RunPath + AppConfig.DB.SchemaMapPath + tableKey + ".ts"); IOHelper.Delete(AppConfig.RunPath + AppConfig.DB.SchemaMapPath + codeKey + ".ts"); } FillTable(objName, objCode, newDt);//重新获取。 MDataTable addTable = dt.GetSchema(false); // bool needUpdate = false; foreach (MDataRow row in newDt.Rows) { MDataRow mr = dt.FindRow(string.Format("Field='{0}'", row.Get <string>("Field"))); if (mr == null)//找不到,则添加行 { row.Set(Config_Grid.OrderNum, 255); row.Set(Config_Grid.Hidden, true); row.Set(Config_Grid.GridID, Guid.NewGuid()); addTable.Rows.Add(row); } } if (addTable.Rows.Count > 0) { result = addTable.AcceptChanges(AcceptOp.InsertWithID); if (!result) { msg = Convert.ToString((Exception)addTable.DynamicData); } } return(result); }
/// <summary> /// 删除 /// </summary> /// <param name="dy"></param> /// <returns></returns> public bool Del(dynamic dy) { bool result = false; try { string v_table = Convert.ToString(dy.table); //获取主键 string guid = string.Empty; string table_guid = @"select column_name from user_cons_columns where constraint_name = (select constraint_name from user_constraints where table_name = '" + v_table.ToUpper() + "' and constraint_type ='P')"; using (MAction action_guid = new MAction(table_guid)) { MDataTable mdt_guid = action_guid.Select(); if (mdt_guid != null && mdt_guid.Rows.Count > 0) { guid = mdt_guid.Rows[0][0].ToString(); } } string ids = Convert.ToString(dy.guids); ids = ids.Replace(",", "','"); using (MAction action = new MAction(v_table)) { action.BeginTransation(); result = action.Delete("" + guid + " in ('" + ids + "')"); if (result) { action.EndTransation(); } else { action.RollBack(); } } } catch (Exception ex) { Log.WriteLogToTxt(ex.Message, LogType.Error); result = false; throw new Exception(ex.Message); } return(result); }
static bool IsCanSetCache(MDataTable dt) { if (dt == null || dt.Rows.Count > 1000) { return(false);// 大于1000条的不缓存,1000这个数字,性能调节上相对合适。 } if (_AutoCache.CacheType != CacheType.LocalCache) { foreach (MCellStruct item in dt.Columns) { if (DataType.GetGroup(item.SqlType) == DataGroupType.Object)//只存档基础类型 { return(false); } } } return(true); }
private static string GetInnerJson(List <MDataRow> groupList) { MDataTable group = groupList; if (AppConfig.DB.DefaultDalType == DalType.Txt) { group.Rows.Sort("OrderNo ASC");//文本需要再次排序(因为不支持查询的时候多重排序) } JsonHelper json = new JsonHelper(false, false); foreach (MDataRow row in group.Rows) { json.Add("text", row.Get <string>("ConfigName")); json.Add("value", row.Get <string>("ConfigValue")); json.AddBr(); } return(json.ToString(true)); }
/// <summary> /// 设置数据表列名 /// </summary> /// <param name="dataTable"></param> /// <param name="shtColName"></param> /// <param name="colNames"></param> /// <param name="colCount"></param> private static void SetDataTableColName(MDataTable dataTable, IRow shtColName, string[] colNames, int colCount) { if (colNames == null || colNames.Length < 1 || colNames.Length < colCount) { for (int i = 0; i < colCount; i++) { dataTable.Columns[i].ColumnName = shtColName.GetCell(i).StringCellValue; } } else { for (int i = 0; i < colCount; i++) { dataTable.Columns[i].ColumnName = colNames[i]; } } }
public override void GetData(object target, System.IO.Stream outgoingData) { MDataTable dt = null; if (target is MDataTable) { dt = target as MDataTable; } else if (target is NameObjectCollectionBase) { dt = MDataTable.CreateFrom(target as NameObjectCollectionBase); } else if (target is IEnumerable) { dt = MDataTable.CreateFrom(target as IEnumerable); } base.GetData(Format(dt), outgoingData); }
private static void CreateSheet(IWorkbook workbook, MDataTable dataTable, string sheetName = null) { var newShtName = sheetName ?? dataTable.TableName; DateFormat = workbook.GetDateFormat(); int shtCount = (dataTable.Rows.Count + 49999) / 50000; for (int i = 0; i < shtCount; i++) { ISheet sht = workbook.CreateSheet(newShtName + "_" + (i + 1)); //写数据表头 WriteSheetTitle(dataTable, sht); //写数据 WriteToSheet(sht, dataTable, i * 50000, i * 50000 + 49999); } }
/// <summary> /// 获取某对应项对应的数据库脚本。 /// </summary> /// <param name="objName">对象名称</param> /// <returns></returns> internal static string GetGridConfigScript(string objName) { StringBuilder sb = new StringBuilder(); MDataTable dt = GridConfig.GetList(objName, GridConfig.SelectType.All); if (dt != null) { dt.Columns.RemoveAt(0);//移除主键 sb.Append("Delete from Config_Grid where ObjName='" + objName + "'\r\nGo\r\n"); //创建SQL脚本。 foreach (var row in dt.Rows) { row.TableName = "Config_Grid"; sb.AppendLine(GetSQLScript(row, "ObjName", "Field")); } } return(sb.ToString()); }
private void btnTransation_Click(object sender, EventArgs e) { //for (int i = 0; i < 100; i++) //{ MDataTable dt = null; string guid = Guid.NewGuid().ToString(); using (MAction action = new MAction("Users")) { bool result = false; action.SetTransLevel(IsolationLevel.ReadCommitted); //可设置的事务级别,一般可以不用设置 action.BeginTransation(); //设置开启事务标识 action.Set("Name", guid.Substring(1, 5)); action.Set("Password", "123456"); int id = 0; if (action.Insert()) //第一个执行时,事务才被加载 { id = action.Get <int>(0); action.ResetTable("Article"); action.Set("UserID", id); action.Set("Title", guid.Substring(3, 5)); action.Set("Content", guid.Substring(5, 5)); action.Set("PubTime", DateTime.Now); result = action.Insert(InsertOp.None); } else { action.RollBack(); //手工回滚 } action.EndTransation(); //提交事务 if (result) { LoadData("UserID=" + id); } OutSql(action.DebugInfo); } if (dt != null) { dt.Bind(dgvView); } //} }
/// <summary> /// 合并行列 /// </summary> /// <param name="dtPbGrid"></param> /// <param name="dic"></param> /// <param name="export"></param> /// <param name="maxMerge"></param> public static void MergedRowAndCol(MDataTable dtPbGrid, Dictionary <MDataRow, int> dic, IWorkbook export, int maxMerge) { string title = string.Empty; ICellStyle style = GetStyle(export, HSSFColor.LightOrange.Index); ISheet sheet = export.GetSheet("Sheet1"); ICell cell; IRow row; int cellIndex = 0; int colspan = 0, merge = 0; int dex = 0; for (int i = 0; i < dtPbGrid.Rows.Count; i++) { title = dtPbGrid.Rows[i]["Title"].Value.ToString(); colspan = Convert.ToInt32(dtPbGrid.Rows[i]["Colspan"].Value); merge = Convert.ToInt32(dtPbGrid.Rows[i]["MergeIndexed"].Value); cellIndex = i; if (dic.ContainsKey(dtPbGrid.Rows[i])) { dex = dic[dtPbGrid.Rows[i]];//取索引 } if (!i.Equals(dex)) { cellIndex = dex; } int rf = 0, rl = 0, cf = 0, cl = 0; row = sheet.GetRow(merge - 1); row.Height = 300; if (colspan > 1)//跨列 { rf = merge - 1; rl = merge - 1; cf = cellIndex; cl = cellIndex + colspan - 1; } else//跨行 { rf = merge - 1; rl = maxMerge - 1; cf = cellIndex; cl = cellIndex; } cell = row.GetCell(cellIndex, MissingCellPolicy.CREATE_NULL_AS_BLANK); //cell.CellStyle = style; cell.SetCellValue(title); sheet.SetColumnWidth(cellIndex, 4000); sheet.AddMergedRegion(new CellRangeAddress(rf, rl, cf, cl)); } }
public bool Del(dynamic dy) { bool result = false; try { string v_table = Convert.ToString(dy.table); //获取主键 string guid = string.Empty; string table_guid = string.Format(@" SELECT c.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c where t.TABLE_NAME = c.TABLE_NAME and t.TABLE_NAME='{0}' /*AND t.TABLE_SCHEMA = 'demodata'*/ AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'", v_table.ToLower()); using (MAction action_guid = new MAction(table_guid)) { MDataTable mdt_guid = action_guid.Select(); if (mdt_guid != null && mdt_guid.Rows.Count > 0) { guid = mdt_guid.Rows[0][0].ToString(); } } string ids = Convert.ToString(dy.guids); //ids = ids.Replace(",", "','"); using (MAction action = new MAction(v_table)) { action.BeginTransation(); result = action.Delete("" + guid + " in (" + ids + ")"); if (result) { action.EndTransation(); } else { action.RollBack(); } } } catch (Exception ex) { Log.WriteLogToTxt(ex.Message, LogType.Error); result = false; } return(result); }
//public void GetUserInfo() //{ // jsonResult = UserAuth.User.ToJson(); //} /// <summary> /// 用户首页呈现的菜单数据 /// </summary> public void GetUserMenu() { MDataTable dt = p.UserMenu; if (IsUseUISite)//格式化菜单数据。 { string ui = AppConfig.GetApp("UI").Trim('/'); for (int i = 0; i < dt.Rows.Count; i++) { MDataRow row = dt.Rows[i]; string url = row.Get <string>(Sys_Menu.MenuUrl).TrimStart('/'); if (url != "#" && !url.ToLower().StartsWith(ui.ToLower() + "/")) { row.Set(Sys_Menu.MenuUrl, "/" + ui + "/" + url); } } } jsonResult = dt.ToJson(false, false, true); }
/// <summary> /// 把MDataTable中的数据写入Excel表中 /// </summary> /// <param name="sht">要写入数据的Sheet</param> /// <param name="dataTable">MDataTable</param> /// <param name="startRowIndex"></param> /// <param name="endRowIndex"></param> /// <param name="startColIndex"></param> private static void WriteToSheet(ISheet sht, MDataTable dataTable, int startRowIndex = 0, int endRowIndex = 50000, int startColIndex = 0) { endRowIndex = endRowIndex > dataTable.Rows.Count ? dataTable.Rows.Count : endRowIndex; int rowIndex = 1; for (int i = startRowIndex; i < endRowIndex; i++) { //创建行 IRow xlsRow = sht.CreateRow(rowIndex++); //创建单元格 int colIndex = 0; foreach (MDataCell cell in dataTable.Rows[i]) { CreateCell(xlsRow, colIndex++, cell.Value); } } }
public void LoadData(MDataTable table) { _MTable = table; }
private void InitClass() { this.DataSetName = "OlapMemSet"; this.Prefix = ""; this.Namespace = "http://tempuri.org/OlapMemSet.xsd"; this.Locale = new System.Globalization.CultureInfo("en-US"); this.CaseSensitive = false; this.EnforceConstraints = true; this.tableM = new MDataTable(); this.Tables.Add(this.tableM); }
internal MRow(DataRowBuilder rb) : base(rb) { this.tableM = ((MDataTable)(this.Table)); }
internal MRow(global::System.Data.DataRowBuilder rb) : base(rb) { this.tableM = ((MDataTable)(this.Table)); }
private void InitClass() { this.DataSetName = "OlapMemSet"; this.Prefix = ""; this.Namespace = "http://tempuri.org/OlapMemSet.xsd"; this.EnforceConstraints = true; this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; this.tableM = new MDataTable(); base.Tables.Add(this.tableM); }
internal void InitVars(bool initTable) { this.tableM = ((MDataTable)(base.Tables["M"])); if ((initTable == true)) { if ((this.tableM != null)) { this.tableM.InitVars(); } } }
public MDataTable Load(string json) { MDataTable table = new MDataTable("loadFromJson"); if (!string.IsNullOrEmpty(json) && json.Length > 30 && json.StartsWith("{") && json.IndexOf(',') > -1 && json.EndsWith("}")) { try { int start=json.IndexOf(":[{") + 2; string data = json.Substring(start, json.LastIndexOf("]}") - start); data = data.Replace("\\}", "#100#").Replace("\\,", "#101#").Replace("\\:,", "#102#"); bool isOK=false; if (!string.IsNullOrEmpty(data)) { string[] items = data.Replace("{",string.Empty).Split('}');//分隔每一行 string item = string.Empty, key = string.Empty, value = string.Empty; for (int i = 0; i < items.Length; i++)//循环每一行数据 { item = items[i].Replace("#100#", "\\}").Trim(','); if (string.IsNullOrEmpty(item)) { continue; } string[] keyValues = item.Split(','); string keyValue = string.Empty; if (i == 0) { for (int j = 0; j < keyValues.Length; j++) { keyValue = keyValues[j].Replace("#101#", "\\,"); key = keyValue.Split(':')[0].Trim('\'', '\"'); table.Columns.Add(key, SqlDbType.NVarChar); } isOK=true; } if (isOK) { MDataRow row = table.NewRow(); for (int k = 0; k < keyValues.Length; k++) { keyValue = keyValues[k].Replace("#101#", "\\,"); if (keyValue.IndexOf(':') > -1) { value = keyValue.Substring(keyValue.IndexOf(':')+1).Replace("#102#", "\\:").Trim('\'', '\"'); row[k].Value = value; } } table.Rows.Add(row); } } } } catch { return table; } } return table; }
internal void InitVars() { this.tableM = ((MDataTable)(this.Tables["M"])); if ((this.tableM != null)) { this.tableM.InitVars(); } }
public void LoadData(MDataTable table) { _Table = table; if (_Table.Rows.Count > 0) { _Row = _Table.Rows[0]; } }