public DataTable GetDbfFile() { DataTable dtResult = NewDataTable(); DateTime endDate = Convert.ToDateTime(AkConfig.EndDate); DateTime startDate = Convert.ToDateTime(AkConfig.StartDate); int days = (endDate - startDate).Days; for (int day = 0; day <= days; day++) { DataTable curTable = null; string curDate = endDate.AddDays(-day).ToString("yyyyMMdd"); if (curDate == DateTime.Now.ToString("yyyyMMdd")) { curTable = DbfHelper.OpenDbfFile(); } else { curTable = DbfHelper.OpenDbfFile(curDate); } if (curTable != null) { UnitTable(curTable, dtResult); } } return(dtResult); }
public void GetKpi_EUREKA() { // Получить записи, принадлежащие договору 194 (должно быть 6 записей) var list = DbfHelper.Read <DbfKpi>( path: kpiPath, winCoding: false, filter: e => e.NAM == "ЭВРИКА"); Assert.Equal(1, list.Count); }
public void GetTableTest1() { string tableName = "Invbkm"; DbfHelper dbfHelper = new DbfHelper($@"C:\temps\dbf\dbfhelperUnitTest\{tableName}", tableName); var dt = dbfHelper.GetTable(); SqliteHelper sqliteHelper = new SqliteHelper($@"C:\temps\dbf\dbfhelperUnitTest\", "UnitTest"); var dt1 = sqliteHelper.GetTable(tableName); Assert.AreEqual(dt.Rows.Count, dt1.Rows.Count); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string dbfPath = Server.MapPath("~/Data/Dbf/sysdbf/"); string dbfTable = "schools.DBF"; this.gvSchool.DataSource = DbfHelper.ToDataTable(dbfPath, dbfTable); this.gvSchool.DataBind(); } }
public void WriteRead() { var items = new List <DbfExampleRecord> { new DbfExampleRecord { Id = 1, BeginDate = new DateTime(2019, 08, 19, 12, 58, 00), Published = true, Name = "Утюг", Cost = 510, }, new DbfExampleRecord { Id = 2, BeginDate = new DateTime(2019, 08, 19, 12, 58, 00), Published = true, Name = "Смартфон Xiaomi", Cost = 6850, } }; var path = @"data\example.dbf"; if (File.Exists(path)) { File.Delete(path); } DbfHelper.Write(path, items, true); var readedItems = DbfHelper.Read <DbfExampleRecord>(path, true); Assert.Equal(2, readedItems.Count); //using (var fileStream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) //{ // using (var writer = new DBFWriter(fileStream)) // { // writer.CharEncoding = Encoding.GetEncoding(1251); // writer.Fields = new List<DBFField> { // new DBFField("Id", NativeDbType.Numeric, 9), // new DBFField("Name", NativeDbType.Char, 100), // new DBFField("Enabled", NativeDbType.Logical) // }.ToArray(); // var recordArray = new object[][] { // new object[] { 1, "First", true }, // new object[] { 2, "Second", true } // }; // foreach (var record in recordArray) // { // writer.WriteRecord(record); // } // } //} }
/// <summary> /// 获取周期内字段“ITEM”起始字符为1的所有dbf记录 /// </summary> /// <returns></returns> //private DataTable GetDbfFile() //{ // DataTable dtResult = NewDataTable(); // string date = string.Empty; // //时间以前一天为基点(不含当天),取周期内的数据。 // //比如:周期设为1周,当前为 2018-3-10,则时间取:2018-3-03 至 2018-3-09 日,7天时间 // string StartDate = DateTime.Now.AddDays(-AkConfig.PeriodNum).ToString("yyyyMMdd"); // string EndDate = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); // for (int i = 1; i <= AkConfig.PeriodNum; i++) // { // date = DateTime.Now.AddDays(-i).ToString("yyyyMMdd"); // DataTable curTable = DbfHelper.OpenDbfFile(date); // if (curTable != null) // { // UnitTable(curTable, dtResult); // } // } // return dtResult; //} /// <summary> /// 获取周期内字段“ITEM”起始字符为1的所有dbf记录 /// </summary> /// <returns></returns> private DataTable GetDbfFile() { DataTable dtResult = NewDataTable(); DataTable curTable = DbfHelper.OpenDbfFile(); if (curTable != null) { UnitTable(curTable, dtResult); } return(dtResult); }
public void GetKpi_contract194() { // Получить записи, принадлежащие договору 194 (должно быть 6 записей) var list = DbfHelper.Read <DbfKpi>( path: kpiPath, winCoding: false, filter: e => e.NDOG == 194, skip: 0, take: 10); Assert.Equal(6, list.Count); }
protected void btnSave_Click(object sender, EventArgs e) { StringBuilder errMsg = new StringBuilder(); if (this.CurBmk != null) { string oldBmkJson = this.CurBmk.Json(); this.CurBmk.bj = this.txtBj.Text.Trim(); this.CurBmk.xh = this.txtBnbh.Text.Trim(); if (IDCardChecker.CheckIDCard(this.txtsfzh.Text) && this.txtsfzh.Text != null) { if (this.txtsfzh.Text.Substring(6, 8) != this.txtCsny.Text) { errMsg.Append("身份证号码中的出生年月日与你所填写的出生年月日不一致!"); } string sexIDCard = this.txtsfzh.Text.Substring(16, 1); if ("02468Xx".Contains(sexIDCard) && (this.ddlSex.SelectedValue != "2")) { errMsg.Append("身份证号码与所选性别不一致!"); } else if ("13579".Contains(sexIDCard) && (this.ddlSex.SelectedValue != "1")) { errMsg.Append("身份证号码与所选性别不一致!"); } this.CurBmk.sfzh = this.txtsfzh.Text.Trim(); } else { this.CurBmk.sfzh = this.txtsfzh.Text.Trim();//身份证错误也允许录入 errMsg.Append("身份证号码已经保存但有错误!"); } this.CurBmk.xstbh = this.txtXstbh.Text.Trim(); this.CurBmk.xm = this.txtXm.Text.Trim(); this.CurBmk.Bm = this.txtBm.Text.Trim(); if (this.ddlSex.SelectedIndex > 0) { this.CurBmk.xb = this.ddlSex.SelectedValue; } else { errMsg.Append("性别没选择,"); } if (Bmk.ValidateCsny(this.txtCsny.Text)) { this.CurBmk.csny = this.txtCsny.Text.Trim(); } else { errMsg.Append("出生年月日有误!必须是8位数字(如:19910805),"); } if (this.ddlTy.SelectedIndex > 0) { this.CurBmk.ty = this.ddlTy.SelectedValue;//团员 } else { errMsg.Append("是否团员未选择,"); } if (this.ddlMz.SelectedIndex > 0) { this.CurBmk.mz = this.ddlMz.SelectedValue;//民族 } else { errMsg.Append("民族未选择,"); } if (this.ddlKslb.SelectedIndex > 0) { this.CurBmk.kslb = this.ddlKslb.SelectedValue;//考生类别 } else { errMsg.Append("考生类别未选择,"); } if (this.ddlHk.SelectedIndex > 0) { this.CurBmk.hk = this.ddlHk.SelectedValue; } else { errMsg.Append("户口未选择,"); } if (this.txtTel.Text.IsNullOrEmpty()) { errMsg.Append("联系电话未填写,"); } else { this.CurBmk.tel = this.txtTel.Text.Trim(); } if (this.txtJtzz.Text.IsNullOrEmpty()) { errMsg.Append("家庭地址未填写,"); } else { this.CurBmk.jtzz = this.txtJtzz.Text.Trim(); } if (this.txtPost.Text.IsNullOrEmpty()) { errMsg.Append("邮政编码未填写,"); } else { this.CurBmk.post = this.txtPost.Text.Trim(); } if (this.ddlSyqk.SelectedIndex > 0) { this.CurBmk.syqk = this.ddlSyqk.SelectedValue; } else { errMsg.Append("生源情况未选择,"); } if (this.ddlHk.SelectedValue == "25" && this.ddlSyqk.SelectedValue != "0") { errMsg.Append("鹿城户籍学生只能选0,"); } else if (this.ddlHk.SelectedValue != "25" && this.ddlSyqk.SelectedValue == "0") { errMsg.Append("非鹿城户籍学生只能选1或7,1表现在鹿城报考,7表示回原籍报考,报考幼师的同学只能回原籍报考,"); } else if ("89".Contains(this.ddlSyqk.SelectedValue)) { errMsg.Append("我们不能选择8或9,"); } this.CurBmk.czhj = this.txtCzhj.Text.Trim(); this.CurBmk.xqah = this.txtXqah.Text.Trim(); this.CurBmk.father = this.txtFather.Text.Trim(); this.CurBmk.fatherdw = this.txtFatherdw.Text.Trim(); this.CurBmk.fatherzw = this.txtFatherzw.Text.Trim(); this.CurBmk.fathertel = this.txtFathertel.Text.Trim(); this.CurBmk.mother = this.txtMother.Text.Trim(); this.CurBmk.motherdw = this.txtMotherdw.Text.Trim(); this.CurBmk.motherzw = this.txtMotherzw.Text.Trim(); this.CurBmk.mothertel = this.txtMothertel.Text.Trim(); this.CurBmk.bz1 = this.txtBeizhu1.Text.Trim(); this.CurBmk.bz2 = this.txtBeizhu2.Text.Trim(); this.CurBmk.bz3 = this.txtBeizhu3.Text.Trim(); this.CurBmk.bz4 = this.txtBeizhu4.Text.Trim(); this.CurBmk.bz5 = this.txtBeizhu5.Text.Trim(); this.CurBmk.bz6 = this.txtBeizhu6.Text.Trim(); this.CurBmk.Bm = this.txtBm.Text.Trim();//别名 //体测项目 if (this.ddlTcxm1.SelectedIndex > 0 && this.ddlTcxm2.SelectedIndex > 0) { char tcxm1 = this.ddlTcxm1.SelectedValue[0]; char tcxm2 = this.ddlTcxm2.SelectedValue[0]; if (tcxm1 == tcxm2) { errMsg.Append("体育两项选考必须不一样,"); } else { if (tcxm1 > tcxm2) { char temp = tcxm1; tcxm1 = tcxm2; tcxm2 = temp; } this.CurBmk.tcxm = tcxm1.ToString() + tcxm2.ToString(); } } else { this.CurBmk.tcxm = ""; } string byxxdm = this.txtByxxdm.Text; if (byxxdm.IsNullOrEmpty()) { errMsg.Append("毕业学校代码未填写,"); } else { string dbfPath = Server.MapPath("~/Data/Dbf/sysdbf/"); string dbfTable = "schools.DBF"; DataTable dt = DbfHelper.ToDataTable(dbfPath, dbfTable); var rows = dt.Select(string.Format("school = '{0}'", byxxdm)); if (rows.Length == 1) { this.CurBmk.byxxmc = rows[0]["mc"].ToString(); this.CurBmk.byxxdm = byxxdm; } else { errMsg.Append("你所填写的就读学校代码有误"); } } string newBmkJson = this.CurBmk.Json(); if (newBmkJson == oldBmkJson) { JsUtil.MessageBox(this, "您没有改动任何数据!提示:" + errMsg.ToString()); } else { ValidateHandler vh = new ValidateHandler(true); if (vh.ValidateObject(this.CurBmk)) { if (this.CurBmk.RecordGuid == Guid.Empty.ToString()) { this.CurBmk.RecordGuid = Guid.NewGuid().ToString(); } if (this.CurBmk.CurHistoryGuid == Guid.Empty.ToString()) { this.CurBmk.CurHistoryGuid = Guid.NewGuid().ToString(); } else { this.CurBmk.PreHistoryGuid = this.CurBmk.CurHistoryGuid; this.CurBmk.CurHistoryGuid = Guid.NewGuid().ToString(); } this.CurBmk.Save(); this.Save2File(this.CurBmk); JsUtil.MessageBox(this, "数据保存成功!提示:" + errMsg.ToString()); BindData(); } else { JsUtil.MessageBox(this, "数据保存失败!提示:" + vh.ErrorMessages + errMsg.ToString()); } } } else { throw new Exception("学生信息不存在!"); } }
/// <summary> /// 从~/Data/Dbf/userdbfs/bmk.dbf导入数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnImportFromDatapath_Click(object sender, EventArgs e) { string dbfPath = Server.MapPath("~/Data/Dbf/userdbfs/"); string dbfTable = "bmk.dbf"; DataTable dt = DbfHelper.ToDataTable(dbfPath, dbfTable); foreach (DataRow dr in dt.Rows) { string bmxh = dr["bmxh"].ToString(); Bmk bmk = Bmk.FindOne(p => p.bmxh == bmxh); if (bmk == null) { bmk = new Bmk(); bmk.RecordGuid = Guid.NewGuid().ToString(); bmk.bmxh = bmxh; } bmk.xm = dr["xm"].ToString(); bmk.xb = dr["xb"].ToString(); bmk.xstbh = dr["xstbh"].ToString(); bmk.bmxh = dr["bmxh"].ToString(); bmk.zkzh = dr["zkzh"].ToString(); bmk.xm = dr["xm"].ToString(); bmk.sfzh = dr["sfzh"].ToString(); bmk.xb = dr["xb"].ToString(); bmk.mz = dr["mz"].ToString(); bmk.csny = dr["csny"].ToString(); bmk.ty = dr["ty"].ToString(); bmk.tcxm = dr["tcxm"].ToString(); bmk.hk = dr["hk"].ToString(); bmk.xz = dr["xz"].ToString(); bmk.kslb = dr["kslb"].ToString(); bmk.byxxdm = dr["byxxdm"].ToString(); bmk.byxxmc = dr["byxxmc"].ToString(); bmk.xh = dr["xh"].ToString(); bmk.bj = dr["class"].ToString(); bmk.kl = dr["kl"].ToString(); bmk.jtzz = dr["jtzz"].ToString(); bmk.tel = dr["tel"].ToString(); bmk.post = dr["post"].ToString(); bmk.bz1 = dr["bz1"].ToString(); bmk.bz2 = dr["bz2"].ToString(); bmk.bz3 = dr["bz3"].ToString(); bmk.bz4 = dr["bz4"].ToString(); bmk.xstbh = dr["xstbh"].ToString(); bmk.kddm = dr["kddm"].ToString(); bmk.kdmc = dr["kdmc"].ToString(); bmk.scbm = dr["scbm"].ToString(); bmk.tbsch = dr["tbsch"].ToString(); bmk.zwh = dr["zwh"].ToString(); bmk.scmh = dr["scmh"].ToString(); //bmk.km1 = dr["km1"].to(); //bmk.km2 = dr["km2"].ToString(); //bmk.km3 = dr["km3"].ToString(); //bmk.km31 = dr["km31"].ToString(); //bmk.km32 = dr["km32"].ToString(); //bmk.km4 = dr["km4"].ToString(); //bmk.km5 = dr["km5"].ToString(); //bmk.km51 = dr["km51"].ToString(); //bmk.km61 = dr["km61"].ToString(); //bmk.km62 = dr["km62"].ToString(); //bmk.km621 = dr["km621"].ToString(); //bmk.km63 = dr["km63"].ToString(); //bmk.km6 = dr["km6"].ToString(); bmk.km71 = dr["km71"].ToString(); bmk.km72 = dr["km72"].ToString(); bmk.km73 = dr["km73"].ToString(); bmk.km74 = dr["km74"].ToString(); bmk.km81 = dr["km81"].ToString(); //bmk.tyf = dr["tyf"].ToString(); //bmk.tzf = dr["tzf"].ToString(); //bmk.tcf = dr["tcf"].ToString(); //bmk.zf = dr["zf"].ToString(); //bmk.tot1 = dr["tot1"].ToString(); //bmk.tot2 = dr["tot2"].ToString(); //bmk.mch = dr["mch"].ToString(); //bmk.tzdm = dr["tzdm"].ToString(); //bmk.tzmc = dr["tzmc"].ToString(); bmk.tcdm = dr["tcdm"].ToString(); bmk.tcmc = dr["tcmc"].ToString(); bmk.zy11 = dr["zy11"].ToString(); bmk.zy12 = dr["zy12"].ToString(); bmk.zy13 = dr["zy13"].ToString(); bmk.zy21 = dr["zy21"].ToString(); bmk.zy22 = dr["zy22"].ToString(); bmk.zy23 = dr["zy23"].ToString(); bmk.zy31 = dr["zy31"].ToString(); bmk.zy32 = dr["zy32"].ToString(); bmk.zy33 = dr["zy33"].ToString(); bmk.zy41 = dr["zy41"].ToString(); bmk.zy42 = dr["zy42"].ToString(); bmk.zy43 = dr["zy43"].ToString(); bmk.zy51 = dr["zy51"].ToString(); bmk.zy52 = dr["zy52"].ToString(); bmk.zy53 = dr["zy53"].ToString(); bmk.fc = dr["fc"].ToString(); bmk.jb = dr["jb"].ToString(); bmk.syqk = dr["syqk"].ToString(); bmk.Save(); } this.Succeed("导入完毕!"); }