DataTable myTable = new DataTable(); string strSql = \where GoodsID like '\
strSql += strID; strSql += \
myTable = mySql.SelectDataBase(strSql); if (myTable.Rows.Count >0) {
for (int i = 0; i < myTable.Rows.Count; i++) {
myString.Add(myTable.Rows[i][0].ToString()); }
txtID.AutoCompleteCustomSource = myString;
txtID.AutoCompleteSource =
AutoCompleteSource.CustomSource;
txtID.AutoCompleteMode = AutoCompleteMode.Suggest; } } else {
txtID.AutoCompleteSource = AutoCompleteSource.None;
txtID.AutoCompleteMode = AutoCompleteMode.None; } }
商品销售的过程中要与数据库交涉,与数据库频繁传输数据,采用ADO.NET数据库访问技术。为了提高效率,对插入商品销售记录实现时借助于存储过程来提高速度。
4.5 营业统计模块
用户可以根据时间段的输入查看营业情况,本系统对营业情况的分类,有依具体明细,有按商品分类,也有按收银员统计。运行界面图如下图4-8所示:
图4-8 营业统计运行结果
4.6 供应商模块
对供应商信息的管理,增删改查都在该界面完成,工具栏中的增删改按钮对应相应的操作。初进入到该窗体时所有的供应商信息都会出现在窗体中的网格,用户可以输入查询条件定位出某供应商,对其进行修改删除操作。双击网格中某供应商的记录,会出现该供应商所提供的商品信息。相应的运行界面图如下图4-9所示。
图4-9 供应商管理运行图
修改删除可实现批量更新,而新增必须在无改删操作或者以上操作后已做保存。这得利于数据库ADO.NET技术中提供的对象
SqlCommandBuild,将离线数据库DataSet集中的数据更新至数据库,保持二者的同步和一致性。实现代码如下:
保持和数据库的同步更新
public DataSet UpdateDataBase(DataSet changedDataSet,string tableName) {
this.msqlCon = new SqlConnection(mstrCon);
this.msqlDa = new SqlDataAdapter(this.strSQL, this.msqlCon); this.msqlCmdBld = new SqlCommandBuilder(msqlDa); this.msqlDa.Update(changedDataSet, tableName); if (changedDataSet.Tables.Contains(tableName) == true) {
changedDataSet.Tables[tableName].Clear(); }
msqlDa.Fill(changedDataSet, tableName); return changedDataSet;返回已更新的数据库表 }
4.7 用户信息模块
具有系统管理员的用户可打开用户信息模块对应的窗体,完成对用户信息的管理,运行界面如下图4-10。
图4-10 用户信息界面运行图