2.2 售票管理
2.2.1 库存/取票
库存/取票这个模块包括,入库,出库,按时间查询入库,按时间和接收用户查询出库,取票等功能; 2.2.1(图1)是库存模块的界面,2.2.1(图2)是取票模块的界面,
2.2.1(图1)
2.2.1(图2)
从界面上可以看到我们这里用到的控件有
控件名称 | 说明 |
日期控件(DateTimePicker) | 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。右击控件选择属性,在跳出框里面选择带有雷电的图标,在里面可以选择属性 |
下拉框(ComboBox) | |
文本(TextBox) | |
按钮(Button) | |
表格(DataGridView) | |
容器(Panel) |
查询功能实现:
第一步:数据库
1、表与关系
2.2.1(图3)
表1.用户表(dbo.UserList)
列名 | 数据类型 | 主键/外键 | 说明 |
UserID | int | 主键 | 用户ID |
UserNumber | char (100) |
| 用户编码 |
StaffID | int | 外键 | 员工表.员工ID |
WorkValue | char (100) |
| 工价 |
LimitsOfAuthorityGroupID | int | 外键 | 权限组ID |
Password | char (100) |
| 密码 |
Remarks | char (100) |
| 备注 |
StopUseNo | bit |
| 停用否 |
表2.员工表(dbo.StaffList)
列名 | 数据类型 | 主键/外键 | 说明 |
StaffID | int | 主键 | 员工ID |
StaffNumber | char (100) |
| 员工编号 |
StaffName | char (100) |
| 员工姓名 |
Sex | char (100) |
| 性别 |
IdentityCardNumber | char (100) |
| 身份证号 |
HomeLocation | char (100) |
| 家庭地址 |
Phone | char (100) |
| 电话 |
StaffTypeID | int | 外键 | 员工类型表.员工类型ID |
OrganizationID | int | 外键 | 机构表.机构ID |
StationID | int | 外键 | 站点表.站点ID |
Remarks | char (100) |
| 备注 |
LeaveOfficeNo | bit |
| 离职否 |
InvokingNo | bit |
| 调用否 |
Date | datetime |
| 日期 |
Photo | nvarchar (3000) |
| 相片 |
表3.取票表(ReceiveBillList)
列名 | 数据类型 | 主键/外键 | 说明 |
ReceiveBillID | int | 主键 | 接收票据ID |
UserID | int | 外键 | 用户表.用户ID |
BillTypeID | int | 外键 | 票据类型表.票据类型ID |
OpenTicketNumber | char (100) |
| 开始票号 |
GetNumber | decimal (18) |
| 领用数量 |
EndTicketNumber | char (100) |
| 结束票号 |
BillStatusID | int | 外键 | 票据状态表.票据状态ID |
Remarks | char (100) |
| 备注 |
ReceiveBillTime | datetime |
| 取票时间 |
SurplusNumber | decimal (18) |
| 剩余数量 |
表4.票据状态表(BillStatusList)
列名 | 数据类型 | 主键/外键 | 说明 |
BillStatusID | int | 主键 | 票据状态ID |
BillStatus | char (100) |
| 票据状态 |
1、设置表格(DataGridView)控件(公共静态方法的设定)
#region 加载dgvCellFormatting方法
public static DataGridView SetDgv(DataGridView dgv)
{
dgv.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(dgv_CellFormatting);//公共方法
dgv.MultiSelect = false;//不允许选择多行
dgv.AllowUserToAddRows = false;//不能自动添加行
dgv.ReadOnly = true;//dgv仅仅可以读
dgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;//选择一个单元格,则选择一行数据
dgv.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;//
dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;//对单元格的内容进行调整
return dgv; //返回dgv
}
#endregion
#region 加载dgvCellFormatting方法
public static void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)//第二个公共方法
{
try
{
DataGridView dgv = sender as DataGridView;//声明一个dgv
DataGridViewRow CurrentRow = dgv.Rows[e.RowIndex];//dgv的当前行等于
CurrentRow.HeaderCell.Value = Convert.ToString(e.RowIndex + 1);
}
catch { }//try{ }catch{ }当有错误时跳过执行
界面的Load事件: this.dgvBillStock = SYS_PublicStaticClass.SetDgv(dgvBillStock);//显示序号(调用上面静态的方法)
1、(DataGridView)绑定数据
第一步:数据库的存储过程,查询库存的信息
IF @TYPE ='frmSatffTakeTicket_SelectTicketSearch'--dgv的绑定
BEGIN
SELECT ReceiveBillList.ReceiveBillID, LTRIM(RTRIM(ReceiveBillList.OpenTicketNumber))AS OpenTicketNumber,
LTRIM(RTRIM(ReceiveBillList.GetNumber))AS GetNumber, LTRIM(RTRIM(ReceiveBillList.EndTicketNumber))AS EndTicketNumber,
BillStatusList.BillStatusID, UserList.UserID, StaffList.StaffID,
LTRIM(RTRIM(StaffList.StaffName))AS StaffName, LTRIM(RTRIM(BillStatusList.BillStatus))AS BillStatus,
ReceiveBillList.ReceiveBillTime, LTRIM(RTRIM(ReceiveBillList.Remarks))AS Remarks, LTRIM(RTRIM(ReceiveBillList.SurplusNumber))AS SurplusNumber
FROM ReceiveBillList INNER JOIN
BillStatusList ON ReceiveBillList.BillStatusID = BillStatusList.BillStatusID INNER JOIN
UserList ON ReceiveBillList.UserID = UserList.UserID INNER JOIN
StaffList ON UserList.StaffID = StaffList.StaffID
WHERE ReceiveBillList.BillStatusID=4//范围,当票据状态为领用时符合要求
ORDER BY ReceiveBillList.ReceiveBillTime DESC--按时间从大到小排列
END
第二步:逻辑层(BLL)代码
[OperationContract]
public DataSet frmSatffTakeTicket_SelectTicketSearch()//库存的信息
{
SqlParameter[] mySqlParameter = { new SqlParameter("@Type", SqlDbType.Char) };
mySqlParameter[0].Value = "frmSatffTakeTicket_SelectTicketSearch";
DataTable myDataTable = myDALMethod.QueryDataTable("SellTicketManage_frmSatffTakeTicket", mySqlParameter);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;//返回值
}
第三步:界面层(UIL)代码,在窗体的Load事件中绑定dgv的数据
在Load事件里面写:
DataTable dtSearch = myfrmSatffTakeTicketClient.frmSatffTakeTicket_SelectTicketSearch().Tables[0];
dgvSearch.DataSource = dtSearch;//DataGridView 名称.数据源=数据集的值
1、下拉框(公共静态方法的设定)
#region 设置下拉框
public static ComboBox SetXiaLaKuang(ComboBox cbo下拉框, DataTable dt数据表, string str列ID, string str列名)
{
try
{
cbo下拉框.DataSource = dt数据表;//下拉框绑定的值
cbo下拉框.DisplayMember = str列名;
cbo下拉框.ValueMember = str列ID;
return cbo下拉框;
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
return null;//返回空
}
}
#endregion
#region 设置自动完成源
public static ComboBox SetXiaLaKuang(ComboBox cbo下拉框, DataTable dt数据表, string str列ID, string str列名, bool bol是否完成源)
{
try
{
cbo下拉框.DataSource = dt数据表;
cbo下拉框.DisplayMember = str列名;
cbo下拉框.ValueMember = str列ID;
cbo下拉框.DropDownStyle = ComboBoxStyle.DropDown;
string [] str =new string[dt数据表.Rows.Count];//声明一个数组
for (int x = 0; x < dt数据表.Rows.Count; x++)//循环dt数据表
{
str[x] = dt数据表.Rows[x][str列名].ToString();
}
cbo下拉框.AutoCompleteSource = AutoCompleteSource.CustomSource;//下拉框的样式
cbo下拉框.AutoCompleteCustomSource.AddRange(str);
cbo下拉框.AutoCompleteMode = AutoCompleteMode.Suggest;
return cbo下拉框;//符返回值给下拉框
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
return null;
}
}
#endregion
调用下拉框公共静态方法:
Load事件添加
DataTable dtReceiveUser = myfrmSatffTakeTicketClient.frmSatffTakeTicket_SelectSatff().Tables[0];//获取数据集
cboReceiveUser = SYS_PublicStaticClass.SetXiaLaKuang(cboReceiveUser, dtReceiveUser, "UserID", "StaffName");//调用静态方法,控件名+数据集名+用户ID+用户名
cboReceiveUser.SelectedIndex = -1;
1、查询出库信息
第一步:数据库的存储过程,
IF @TYPE ='frmSatffTakeTicket_SelectTicketSearch'--dgv的绑定
BEGIN
SELECT ReceiveBillList.ReceiveBillID, LTRIM(RTRIM(ReceiveBillList.OpenTicketNumber))AS OpenTicketNumber,
LTRIM(RTRIM(ReceiveBillList.GetNumber))AS GetNumber, LTRIM(RTRIM(ReceiveBillList.EndTicketNumber))AS EndTicketNumber,
BillStatusList.BillStatusID, UserList.UserID, StaffList.StaffID,
LTRIM(RTRIM(StaffList.StaffName))AS StaffName, LTRIM(RTRIM(BillStatusList.BillStatus))AS BillStatus,
ReceiveBillList.ReceiveBillTime, LTRIM(RTRIM(ReceiveBillList.Remarks))AS Remarks, LTRIM(RTRIM(ReceiveBillList.SurplusNumber))AS SurplusNumber
FROM ReceiveBillList INNER JOIN
BillStatusList ON ReceiveBillList.BillStatusID = BillStatusList.BillStatusID INNER JOIN
UserList ON ReceiveBillList.UserID = UserList.UserID INNER JOIN
StaffList ON UserList.StaffID = StaffList.StaffID
WHERE ReceiveBillList.BillStatusID=4范围,当票据状态为领用时符合要求
ORDER BY ReceiveBillList.ReceiveBillTime DESC--按时间从大到小排列
第二步:逻辑层(BLL)代码,查询的实现
[OperationContract]
public DataSet frmSatffTakeTicket_SelectTicketSearch()//
{
SqlParameter[] mySqlParameter = { new SqlParameter("@Type", SqlDbType.Char) };
mySqlParameter[0].Value = "frmSatffTakeTicket_SelectTicketSearch";
DataTable myDataTable = myDALMethod.QueryDataTable("SellTicketManage_frmSatffTakeTicket", mySqlParameter);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
第三步:界面层(UIL)代码,查询的实现
private void btnSearch_Click(object sender, EventArgs e)
{
if (chkTime.Checked == true)//当复选框打上勾时
{
DateTime dtTimeOne = Convert.ToDateTime(dtpTimeOne.Text);
DateTime dtTimeTwo = Convert.ToDateTime(dtpTimeTwo.Text);//声明一个datetine,它的值等于时间控件的数据
string strReceiveUser = cboReceiveUser.Text.ToString().Trim();//声明一个字符串,它的值等于一个下拉框的值
//string strBillType = cboBillType.Text.ToString().Trim();
DataTable dtSearch = myfrmSatffTakeTicketClient.frmSatffTakeTicket_SelectTicketSearch().Tables[0];//数据集获取数据
DataView dv = new DataView(dtSearch);//声明一个DataView,它的数据时数据集的数据
dv.RowFilter = "(ReceiveBillTime>='" + dtTimeOne + "'AND ReceiveBillTime<='" + dtTimeTwo + "')";//选择时间控件的中查询的数据
dgvSearch.DataSource = dv.ToTable();//给dgv赋值
if (cboReceiveUser.Text != "")
{
DataView dv1 = new DataView(dtSearch);
dv1.RowFilter = "StaffName like '%" + strReceiveUser + "%'";//选择文本框中查询的数据
dtSearch = dv1.ToTable();
dgvSearch.DataSource = dv1;
}
else
{
dgvSearch.DataSource = dtSearch;
}
}
else
{
string strReceiveUser = cboReceiveUser.Text.ToString().Trim();
DataTable dtSearch = myfrmSatffTakeTicketClient.frmSatffTakeTicket_SelectTicketSearch().Tables[0];
if (cboReceiveUser.Text != "")
{
DataView dv1 = new DataView(dtSearch);
dv1.RowFilter = "StaffName like '%" + strReceiveUser + "%'";
dtSearch = dv1.ToTable();
dgvSearch.DataSource = dv1;
}
else
{
dgvSearch.DataSource = dtSearch;
}
timSearchTicket.Enabled = true;
dtpTimeOne.Format = DateTimePickerFormat.Custom;//格式Format
dtpTimeOne.CustomFormat = "yyyy-MM-dd HH:mm";
dtpTimeTwo.Format = DateTimePickerFormat.Custom;
dtpTimeTwo.CustomFormat = "yyyy-MM-dd HH:mm";//设置时间控件的格式为(2015-01-20 16:52)
txtReceiveUser.Text = PublicStaticObject.strStaffName;
}
}
1、新增入库
第一步:数据库的存储过程
IF @TYPE='frmSatffTakeTicket_InsertLaidUp'--新增入库
BEGIN
INSERT INTO LaidUpList(LaidUpTime, LaidUpNumber, Remarks)
VALUES (@LaidUpTime, @LaidUpNumber, @Remarks)
END
第二步:逻辑层(BLL)代码,新增入库信息
[OperationContract]
public int frmSatffTakeTicket_InsertLaidUp(DateTime dtLaidUpTime,string strLaidUpNumber,string strRemarks)//--新增入库
{
SqlParameter[] mySqlParameter = { new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@LaidUpTime", SqlDbType.DateTime),
new SqlParameter("@LaidUpNumber", SqlDbType.Char),
new SqlParameter("@Remarks", SqlDbType.Char),};
mySqlParameter[0].Value = "frmSatffTakeTicket_InsertLaidUp";
mySqlParameter[1].Value = dtLaidUpTime;
mySqlParameter[2].Value = strLaidUpNumber;
mySqlParameter[3].Value = strRemarks;
return myDALMethod.UpdateData("SellTicketManage_frmSatffTakeTicket", mySqlParameter);
}
第三步:界面层(UIL)代码
private void btnLaidUp_Click(object sender, EventArgs e)
{
if (txtLaidUp.Text == "")
{
MessageBox.Show("入库数量为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);//提示框
return;
}
if (MessageBox.Show("您确定入库,数量为:" + txtLaidUp.Text.ToString().Trim() + "?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)//提示框,有确定和取消按钮
{
DateTime dtLaidUpTime = DateTime.Now;//绑定值
string strLaidUpNumber = txtLaidUp.Text.ToString().Trim();
string strRemarks = txtRemarksOne.Text.ToString().Trim();
int i = myfrmSatffTakeTicketClient.frmSatffTakeTicket_InsertLaidUp(dtLaidUpTime, strLaidUpNumber, strRemarks);
if (i > 0)
{
MessageBox.Show("入库完成!");//提示框
string strGetNumber = Convert.ToString(Convert.ToDecimal(dgvBillStock.CurrentRow.Cells["GetNumber"].Value) + Convert.ToDecimal(txtLaidUp.Text));//修改库存数
myfrmSatffTakeTicketClient.frmSatffTakeTicket_UpdateLaidUpNumber(strGetNumber);
frmSatffTakeTicket_Load(null, null);执行Load事件,即刷新
txtLaidUp.Text = "";
txtRemarksOne.Text = "";
}
else
{
MessageBox.Show("系统错误!");
frmSatffTakeTicket_Load(null, null);//刷新
txtLaidUp.Text = "";//清空文本框
txtRemarksOne.Text = "";
}
}
}
6、新增出库
第一步:数据库的存储过程
IF @TYPE='frmSatffTakeTicket_InsertCheckTicket'--新增出库
BEGIN
INSERT INTO ReceiveBillList(UserID, OpenTicketNumber, GetNumber,
EndTicketNumber, BillStatusID, Remarks, ReceiveBillTime, SurplusNumber)
VALUES (@UserID, @OpenTicketNumber, @GetNumber,
@EndTicketNumber, @BillStatusID, @Remarks, @ReceiveBillTime, @SurplusNumber)
END
第二步:逻辑层(BLL)代码,
[OperationContract]
public int frmSatffTakeTicket_InsertCheckTicket(int intUserID, string strOpenTicketNumber, Decimal sttGetNumber, string EndTicketNumber,
int intBillStatusID, string strRemarks, DateTime strReceiveBillTime, decimal SurplusNumber)//新增出库
{
SqlParameter[] mySqlParameter = { new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@UserID", SqlDbType.Int),
new SqlParameter("@OpenTicketNumber", SqlDbType.Char),
new SqlParameter("@GetNumber", SqlDbType.Decimal),
new SqlParameter("@EndTicketNumber", SqlDbType.Char),
new SqlParameter("@BillStatusID", SqlDbType.Int),
new SqlParameter("@Remarks", SqlDbType.Char),
new SqlParameter("@ReceiveBillTime", SqlDbType.DateTime),
new SqlParameter("@SurplusNumber", SqlDbType.Decimal)};
mySqlParameter[0].Value = "frmSatffTakeTicket_InsertCheckTicket";
mySqlParameter[1].Value = intUserID;
mySqlParameter[2].Value = strOpenTicketNumber;
mySqlParameter[3].Value = sttGetNumber;
mySqlParameter[4].Value = EndTicketNumber;
mySqlParameter[5].Value = intBillStatusID;
mySqlParameter[6].Value = strRemarks;
mySqlParameter[7].Value = strReceiveBillTime;
mySqlParameter[8].Value = SurplusNumber;
return myDALMethod.UpdateData("SellTicketManage_frmSatffTakeTicket", mySqlParameter);
}
第三步:界面层(UIL)代码
private void btnConfirm_Click(object sender, EventArgs e)
{
try
{
if (MessageBox.Show("您确定要出库?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)//提示框,有确定和取消按钮
{
if (txtStartTicketNumber.Text == "")
{
MessageBox.Show("开始票号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);//提示框,有确定和取消按钮
return;
}
if (txtCollarUseTicketNumber.Text == "")
{
MessageBox.Show("取票数量不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (txtTicketNumber.Text == "")
{
MessageBox.Show("结束票号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (txtStartTicketNumber.Text == "")
{
MessageBox.Show("不填备注?", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
int intUserID = PublicStaticObject.UserID;//赋值
string strOpenTicketNumber = txtStartTicketNumber.Text.ToString().Trim();
decimal sttGetNumber = Convert.ToDecimal(txtCollarUseTicketNumber.Text.ToString().Trim());
string EndTicketNumber = txtTicketNumber.Text.ToString().Trim();
string strRemarks = txtRemarks.Text.ToString().Trim();
int intBillStatusID = 4;
decimal SurplusNumber =Convert.ToDecimal(txtCollarUseTicketNumber.Text.ToString().Trim());
DateTime strReceiveBillTime = Convert.ToDateTime(txtSearchTime.Text.ToString().Trim());
int i = myfrmSatffTakeTicketClient.frmSatffTakeTicket_InsertCheckTicket(intUserID, strOpenTicketNumber, sttGetNumber, EndTicketNumber,
intBillStatusID, strRemarks, strReceiveBillTime, SurplusNumber);//所新增传递数据的代码
if (i > 0)
{
MessageBox.Show("出库成功!");
string strGetNumber = Convert.ToString(Convert.ToDecimal(dgvBillStock.CurrentRow.Cells["GetNumber"].Value) - Convert.ToDecimal(txtCollarUseTicketNumber.Text));
myfrmSatffTakeTicketClient.frmSatffTakeTicket_UpdateNumber(PublicStaticObject.intBillStockID, strGetNumber);
frmSatffTakeTicket_Load(null, null);//执行Load事件
}
else
{
MessageBox.Show("出库失败!");//提示框,没有确定和取消按钮
btnCancel_Click(null, null);
}
}
}
catch
{ }
7、新增集体取票
第一步:数据库的存储过程
IF @TYPE='frmSeatAndTicket_InsertSeatAndTicket'--新增票连座位
BEGIN
INSERT INTO TicketNumberList(TicketNumber, ASeatNumberID, UserNo)
VALUES (@TicketNumber, @ASeatNumberID, @UserNo)
END
第二步:逻辑层(BLL)代码
[OperationContract]
public int frmSeatAndTicket_InsertSeatAndTicket(string strTicketNumber, int intASeatNumberID, bool boolUserNo)//新增取票
{
SqlParameter[] mySqlParameter = { new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@TicketNumber", SqlDbType.Char),
new SqlParameter("@ASeatNumberID", SqlDbType.Int),
new SqlParameter("@UserNo", SqlDbType.Bit),};
mySqlParameter[0].Value = "frmSeatAndTicket_InsertSeatAndTicket";
mySqlParameter[1].Value = strTicketNumber;
mySqlParameter[2].Value = intASeatNumberID;
mySqlParameter[3].Value = boolUserNo;
return myDALMethod.UpdateData("SellTicketManage_frmSeatAndTicket", mySqlParameter);
}
第三步:界面层(UIL)代码
private void btnPlay_Click(object sender, EventArgs e)//集体取票按下
{
try
{
if (PublicStaticObject.intReceiveBill > 0)//当获取的ID大于0时
{
string strSurplusNumberOne = "";//声明一个字符串等于空
string strEndTicketNumber = "";
string strTicketNumber = "";
for (int i = 0; i < dgvASeat.Rows.Count; i++)//循环dgv
{
DataTable dtReceiveBillOne = myfrmSeatAndTicketClient.frmSeatAndTicket_SelectReceiveBillOne(PublicStaticObject.intReceiveBill).Tables[0];//在PublicStaticObject.intReceiveBill的限制下获取数据集
strSurplusNumberOne = dtReceiveBillOne.Rows[0]["SurplusNumber"].ToString().Trim();//上面字符串的值等于数据集中的某个值
strEndTicketNumber = dtReceiveBillOne.Rows[0]["EndTicketNumber"].ToString().Trim();
strTicketNumber = Convert.ToString(Convert.ToDecimal(strEndTicketNumber) - Convert.ToDecimal(strSurplusNumberOne) + 1);//将两个字符串转化为数字类型然后相减,在转化为字符串
int intASeatNumberID = (int)dgvASeat.Rows[i].Cells["ASeatNumberID"].Value;
Boolean boolUserNo = true;
int j = myfrmSeatAndTicketClient.frmSeatAndTicket_InsertSeatAndTicket(strTicketNumber, intASeatNumberID, boolUserNo);
if (j > 0)
{
if (Convert.ToDecimal(strSurplusNumberOne) > 0)
{
myfrmSeatAndTicketClient.frmSeatAndTicket_UpdateLinkNo(intASeatNumberID);
string strSurplusNumber = Convert.ToString(Convert.ToDecimal(strSurplusNumberOne) - 1);//
int intReceiveBillID = PublicStaticObject.intReceiveBill;
myfrmSeatAndTicketClient.frmSeatAndTicket_UpdateSurplusNumber(strSurplusNumber, intReceiveBillID);
DataTable dtReceiveBill = myfrmSeatAndTicketClient.frmSeatAndTicket_SelectReceiveBill().Tables[0];
dgvReceiveBill.DataSource = dtReceiveBill;//dgv绑定数据
cboClassesOne_DropDownClosed(null, null);//刷新
}
else
{
cboClassesOne_DropDownClosed(null, null);
return;//返回
}
}
}
}
else { MessageBox.Show("请选择一项!"); }
}
catch { }
}
仅供学习,禁止用于商业用途