2025-03-28 09:49:56 +08:00

114 lines
5.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}