using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Configuration; namespace BARCODELIBRARY { public partial class Update : Form { WaiteFrom _WaitForm; public static string _Helper = ConfigurationManager.AppSettings["OracleHelper"].ToString(); OracleHelper _OracleHelper = new OracleHelper(_Helper.Split('|')[0], _Helper.Split('|')[1], _Helper.Split('|')[2], _Helper.Split('|')[3]); public Update() { InitializeComponent(); } private void Update_Load(object sender, EventArgs e) { this.Text = "基础库信息更新"; } private void BT_Update_Click(object sender, EventArgs e) { ShowWaiteForm(); _WaitForm.ShowMessage("正在更新..."); //更新基础库数据 string insert_SQL = @"INSERT INTO HIGHWAY_EXCHANGE.T_BARCODELIBRARY (BARCODELIBRARY_ID,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE, COMMODITY_EN,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE,ADDTIME,COMMODITY_STATE) (SELECT HIGHWAY_EXCHANGE.SEQ_BARCODELIBRARY.NEXTVAL,A.COMMODITY_TYPE, lpad(to_char(HIGHWAY_EXCHANGE.SEQ_BARCODELIBRARY.NEXTVAL), 8, '0'), A.COMMODITY_NAME,A.COMMODITY_BARCODE,A.COMMODITY_EN,A.COMMODITY_UNIT, A.COMMODITY_RULE,A.COMMODITY_RETAILPRICE,SYSDATE,1 FROM (SELECT COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE, COMMODITY_EN,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE FROM (SELECT COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE, COMMODITY_EN,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE, ROW_NUMBER() OVER (PARTITION BY COMMODITY_BARCODE ORDER BY COMMODITYEX_ID) AS RK FROM HIGHWAY_EXCHANGE.T_COMMODITYEX) WHERE RK = 1) A WHERE NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY B WHERE A.COMMODITY_BARCODE = B.COMMODITY_BARCODE) AND COMMODITY_RETAILPRICE < 1000000 AND LENGTH(COMMODITY_BARCODE) > 8 AND COMMODITY_NAME != '未知商品' AND not regexp_like(COMMODITY_BARCODE,'[[:alpha:]]')) "; string sql = @"UPDATE HIGHWAY_EXCHANGE.T_BARCODELIBRARY SET COMMODITY_CODE = LPAD(BARCODELIBRARY_ID,8,'0') WHERE COMMODITY_CODE IS NULL"; _OracleHelper.ExcuteSql(sql); if (_OracleHelper.ExcuteSql(insert_SQL) > 0) { MessageBox.Show("更新成功!"); } else { MessageBox.Show("暂无需更新的数据!"); } dataGridView1.DataSource = getdate(); label3.Text = dataGridView1.Rows.Count.ToString(); _WaitForm.Close(); _WaitForm.Dispose(); } private void Update_FormClosing(object sender, FormClosingEventArgs e) { this.DialogResult = DialogResult.OK; } public void ShowWaiteForm() { _WaitForm = WaiteFrom.GetInstance(); //设置WaitForm的父窗体为当前窗体,以便在WaitForm中使用父窗体对象 _WaitForm.Owner = this; _WaitForm.ShowMessage("加载中......"); _WaitForm.Show(); Application.DoEvents(); _WaitForm.Refresh(); } public DataTable getdate() { //查询需要更新的数据 string sql = @"SELECT A.COMMODITY_TYPE AS 商品类型,A.COMMODITY_CODE AS 商品编码,A.COMMODITY_NAME AS 商品名称, A.COMMODITY_BARCODE AS 商品条码,A.COMMODITY_EN 商品简称,A.COMMODITY_UNIT AS 商品单位, A.COMMODITY_RULE AS 商品规格,A.COMMODITY_RETAILPRICE AS 商品零售价,A.COMMODITY_MEMBERPRICE AS 会员价 FROM (SELECT COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE, COMMODITY_EN,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE FROM (SELECT COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE, COMMODITY_EN,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE, ROW_NUMBER() OVER (PARTITION BY COMMODITY_BARCODE ORDER BY COMMODITYEX_ID) AS RK FROM HIGHWAY_EXCHANGE.T_COMMODITYEX) WHERE RK = 1) A WHERE NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY B WHERE A.COMMODITY_BARCODE = B.COMMODITY_BARCODE) AND COMMODITY_RETAILPRICE < 1000000 AND LENGTH(COMMODITY_BARCODE) > 8 and COMMODITY_NAME != '未知商品' AND not regexp_like(COMMODITY_BARCODE,'[[:alpha:]]')"; return _OracleHelper.ExcuteSqlGetDataSet(sql).Tables[0]; } private void BT_Search_Click(object sender, EventArgs e) { ShowWaiteForm(); _WaitForm.ShowMessage("正在搜索..."); dataGridView1.DataSource = getdate(); label3.Text = dataGridView1.Rows.Count.ToString(); _WaitForm.Close(); _WaitForm.Dispose(); } } }