📄 cdlgsiteinfo.cs
字号:
ckForbid.Checked=false;
}
else
{
ckForbid.Checked=true;
}
}
dbReader.Close();
dbReader.Dispose();
dbCommand.Dispose();
}
catch
{
MessageBox.Show("未知数据库错误!");
return 1;
}
//工作站信息
lbWs.Items.Clear();//清空工作站列表框
mySql = "Select t2.IPAddr from Charge_R_Site_Ws t1, charge_WS_Info t2 " +
"Where t1.WsID = t2.WsID and t1.SiteID = " + SiteID.ToString();
dbCommand = new OracleCommand(mySql, myConn);
try
{
OracleDataReader dbReader = dbCommand.ExecuteReader();
//往工作站列表中逐一添加工作站
while (dbReader.Read())
{
lbWs.Items.Add(dbReader.GetString(0));
}
dbReader.Close();
dbReader.Dispose();
dbCommand.Dispose();
}
catch
{
MessageBox.Show("未知数据库错误!");
return 1;
}
}
return 0;
}
//添加工作站
private void btnAdd_Click(object sender, System.EventArgs e)
{
if (dlgWsInfo.ShowDialog(this) == DialogResult.OK)
{
lbWs.ClearSelected();//取消工作站列表中的选择
ArrayList list = dlgWsInfo.SelectedWs;//要添加的工作站列表
//对取得的工作站列表中每一元素进行判断,如果此工作站不在列表中,则将其加入,并设为选定状态;如果此工作站已在列表中,则将其设为选定状态
for (int i = 0; i < list.Count; i++)
{
string s = list[i].ToString();
if (!lbWs.Items.Contains(s))
{
lbWs.Items.Add(s);
lbWs.SetSelected(lbWs.Items.Count - 1, true);
}
else
{
lbWs.SetSelected(lbWs.Items.IndexOf(s), true);
}
}
}
}
//删除工作站
private void btnDel_Click(object sender, System.EventArgs e)
{
for (int i = lbWs.Items.Count - 1; i >= 0; i--)
{
if (lbWs.GetSelected(i))
{
lbWs.Items.RemoveAt(i);
}
}
}
/// <summary>
/// 检查输入正确性
/// </summary>
/// <returns>true:正确;false:错误</returns>
private bool CheckInput()
{
//交费点名称
if (txtName.Text.Trim().Length == 0)
{
MessageBox.Show(this, "请输入收费点名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtName.Clear();
txtName.Focus();
return false;
}
else if (txtName.Text.Trim().Length > 10)
{
MessageBox.Show(this, "收费点名称不能超过10个汉字!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtName.SelectAll();
txtName.Focus();
return false;
}
//描述
if (txtDesc.Text.Trim().Length > 200)
{
MessageBox.Show(this, "描述内容太长!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtDesc.Focus();
return false;
}
//金额
if(txtMaxMoney.Text.Trim()=="")
{
MessageBox.Show(this, "必须输入最大金额!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtMaxMoney.Focus();
return false;
}
if(txtMaxMoney.Text.Trim().Length>11)
{
MessageBox.Show(this, "输入金额太大!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtMaxMoney.Focus();
return false;
}
//下属工作站
OracleConnection myConn = Connection.DBConnection;
if (myConn == null)
{
E.ShowMessage(ErrorCode.E_3_ConnectDBFailed_Code);
return false;
}
if (lbWs.Items.Count == 0)
{
if (MessageBox.Show(this, "一个交费点至少应该有一台交费工作站,确定不指定吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return false;
}
}
else
{
string sWsStr = "";
for (int i = 0; i < lbWs.Items.Count; i++)
{
sWsStr += "'" + lbWs.Items[i].ToString() + "',";
}
sWsStr = sWsStr.Substring(0, sWsStr.Length - 1);
string mySql = "Select t1.IPAddr From charge_WS_Info t1, Charge_R_Site_Ws t2 " +
"Where t1.WsID = t2.WsID and t1.IPAddr in (" + sWsStr + ")";
if (nSiteID != -1) //修改
{
mySql += " and t2.SiteID != " + nSiteID.ToString();
}
OracleCommand dbCommand = new OracleCommand(mySql, myConn);
try
{
string sRepeatWs = "";
OracleDataReader dbReader = dbCommand.ExecuteReader();
while (dbReader.Read())
{
sRepeatWs += dbReader.GetString(0) + ",";
}
if (sRepeatWs.Length > 0)
{
sRepeatWs = sRepeatWs.Substring(0, sRepeatWs.Length - 1);
MessageBox.Show(this, "下面的工作站已被其他交费点占用,请修改:\n" + sRepeatWs, "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
dbReader.Close();
dbReader.Dispose();
dbCommand.Dispose();
}
catch
{
E.ShowMessage(ErrorCode.E_8_DBUnknownError_Code);
return false;
}
}
return true;
}
//确定
private void btnOK_Click(object sender, System.EventArgs e)
{
if (CheckInput())
{
//构造收费点工作站字符串,字符串由工作站IP组成,IP间用分号隔开
string sWsStr = "";
for (int i = 0; i < lbWs.Items.Count; i++)
{
sWsStr += lbWs.Items[i].ToString() + ";";
}
if (nSiteID == -1) //添加
{
OracleParameter[] inParam = {new OracleParameter(),
new OracleParameter(), new OracleParameter(),new OracleParameter(),new OracleParameter()};
//收费点名称
inParam[0].ParameterName = "p_SiteName";
inParam[0].OracleType = OracleType.VarChar;
inParam[0].Value = txtName.Text.Trim();
//收费点描述
inParam[1].ParameterName = "p_Desc";
inParam[1].OracleType = OracleType.VarChar;
inParam[1].Size = 400;
inParam[1].Value = txtDesc.Text.Trim();
//最大金额参数
int m_maxmoney=Convert.ToInt32(Convert.ToDouble(txtMaxMoney.Text.Trim())*100);
inParam[2].ParameterName = "p_Maxmoney";
inParam[2].OracleType = OracleType.Int32;
inParam[2].Value=m_maxmoney;
//收费点状态
int m_state=1;
if(ckForbid.Checked)
{
m_state=0;
}
inParam[3].ParameterName = "p_State";
inParam[3].OracleType = OracleType.Int32;
inParam[3].Value=m_state;
//工作站IP字符串
inParam[4].ParameterName = "p_WsStr";
inParam[4].OracleType = OracleType.VarChar;
inParam[4].Size = 200;
inParam[4].Value = sWsStr;
OracleParameter[] outParam = {new OracleParameter(), new OracleParameter()};
outParam[0].ParameterName = "p_Result";
outParam[0].OracleType = OracleType.Int32;
outParam[0].Direction = ParameterDirection.Output;
outParam[1].ParameterName = "p_SiteID";
outParam[1].OracleType = OracleType.Int32;
outParam[1].Direction = ParameterDirection.Output;
GlobleHelper.ExecStoredProc("SP_ChargeSite_Insert", inParam, ref outParam);
int error = Convert.ToInt32(outParam[0].Value);
if (error != 0)
{
E.ShowMessage(error);
return;
}
nSiteID = Convert.ToInt32(outParam[1].Value);//创建的收费点的ID号
}
else
{
OracleParameter[] inParam = {new OracleParameter(),
new OracleParameter(), new OracleParameter(), new OracleParameter(),new OracleParameter(),new OracleParameter()};
inParam[0].ParameterName = "p_SiteName";
inParam[0].OracleType = OracleType.VarChar;
inParam[0].Value = txtName.Text.Trim();
inParam[1].ParameterName = "p_Desc";
inParam[1].OracleType = OracleType.VarChar;
inParam[1].Size = 400;
inParam[1].Value = txtDesc.Text.Trim();
inParam[2].ParameterName = "p_WsStr";
inParam[2].OracleType = OracleType.VarChar;
inParam[2].Size = 200;
inParam[2].Value = sWsStr;
inParam[3].ParameterName = "p_SiteID";
inParam[3].OracleType = OracleType.Int32;
inParam[3].Value = nSiteID;
//最大金额参数
int m_maxmoney1=Convert.ToInt32(Convert.ToDouble(txtMaxMoney.Text.Trim())*100);
inParam[4].ParameterName = "p_Maxmoney";
inParam[4].OracleType = OracleType.Int32;
inParam[4].Value=m_maxmoney1;
//确定收费点状态
int m_state1=1;
if(ckForbid.Checked)
{
m_state1=0;
}
inParam[5].ParameterName = "p_State";
inParam[5].OracleType = OracleType.Int32;
inParam[5].Value=m_state1;
OracleParameter[] outParam = {new OracleParameter(), new OracleParameter()};
outParam[0].ParameterName = "p_Result";
outParam[0].OracleType = OracleType.Int32;
outParam[0].Direction = ParameterDirection.Output;
GlobleHelper.ExecStoredProc("SP_ChargeSite_Update", inParam, ref outParam);
int error = Convert.ToInt32(outParam[0].Value);
if (error != 0)
{
E.ShowMessage(error);
return;
}
}
this.DialogResult = DialogResult.OK;
this.Close();
}
}
//取消
private void btnCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -