就是简单的手持机 扫描条码界面
首先判断该条码在这个单号里又没,没有的话就添加,然后关闭当前窗口,重新加载该窗口,
this.Name 为单号
现在的问题是扫描一会儿就出现如下错误
未处理的 system.stackoverflowexceptionprivate void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string sqlcount = "select count(*) from mb_xs_detail where sheet_no='" + this.Name + "' and item_no='" + this.textBox1.Text + "'";
SQLCEWrapper cetest = new SQLCEWrapper();
int i = int.Parse(cetest.ReObjectvalue(sqlcount).ToString()); if (textBox1.Text == "")
{
MessageBox.Show("请输入条码");
this.textBox1.Focus();
} else if (i != 0)
{
MessageBox.Show("该条码已存在");
this.textBox1.Text = "";
this.textBox1.Focus();
}
else
{
// SQLCEWrapper cetest = new SQLCEWrapper(); string sqlgetid = "select max(SUBSTRing(id,3,5)) from mb_xs_detail";
string newid = cetest.Getid(sqlgetid); string SQLstr = "INSERT INTO mb_xs_detail (id,sheet_no,item_no) values ('" + newid + "','" + this.Name + "','" + this.textBox1.Text + "')";
//string SQLstr = "INSERT INTO mb_xs_detail (id,sheet_no,item_no) values ('00009'" + this.Name + "','" + this.textBox1.Text + "')";
cetest.ExecuteNoResult(SQLstr);
this.Dispose();
SendDetail form1 = new SendDetail(this.Name);
form1.ShowDialog(); //模式窗口,先运行Form1的作用
}
} }窗口初始化的代码
this.textBox2.Text = "销售发货-" + this.Name;
this.lbczy.Text = user.UserName;
string strSql = "SELECT id as 流水号,item_no as 条码,sheet_no 单号 FROM mb_xs_detail where sheet_no='" + this.Name + "'";
string sqlcountqty = "select count(*) from mb_xs_detail where sheet_no='" + this.Name + "'"; SQLCEWrapper cetest = new SQLCEWrapper();
int j = int.Parse(cetest.ReObjectvalue(sqlcountqty).ToString());
this.lbqty.Text = j.ToString();
// 将 ResultSetView 绑定到 DataGrid 控件
this.dataGrid1.DataSource = cetest.resultSetView(strSql); //设置DataGrid 列宽 第一步
DataGridTableStyle myDataGridStyle = null;
GridColumnStylesCollection myDataGridColStyle = null;
myDataGridStyle = new DataGridTableStyle();
dataGrid1.TableStyles.Clear(); // 先清除格式
dataGrid1.TableStyles.Add(myDataGridStyle);//加载格式 // 设置dataGrid 列的宽度
myDataGridColStyle = dataGrid1.TableStyles[0].GridColumnStyles;
myDataGridColStyle[0].Width = 55;
myDataGridColStyle[1].Width = 150;
myDataGridColStyle[2].Width = 120;
}
首先判断该条码在这个单号里又没,没有的话就添加,然后关闭当前窗口,重新加载该窗口,
this.Name 为单号
现在的问题是扫描一会儿就出现如下错误
未处理的 system.stackoverflowexceptionprivate void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string sqlcount = "select count(*) from mb_xs_detail where sheet_no='" + this.Name + "' and item_no='" + this.textBox1.Text + "'";
SQLCEWrapper cetest = new SQLCEWrapper();
int i = int.Parse(cetest.ReObjectvalue(sqlcount).ToString()); if (textBox1.Text == "")
{
MessageBox.Show("请输入条码");
this.textBox1.Focus();
} else if (i != 0)
{
MessageBox.Show("该条码已存在");
this.textBox1.Text = "";
this.textBox1.Focus();
}
else
{
// SQLCEWrapper cetest = new SQLCEWrapper(); string sqlgetid = "select max(SUBSTRing(id,3,5)) from mb_xs_detail";
string newid = cetest.Getid(sqlgetid); string SQLstr = "INSERT INTO mb_xs_detail (id,sheet_no,item_no) values ('" + newid + "','" + this.Name + "','" + this.textBox1.Text + "')";
//string SQLstr = "INSERT INTO mb_xs_detail (id,sheet_no,item_no) values ('00009'" + this.Name + "','" + this.textBox1.Text + "')";
cetest.ExecuteNoResult(SQLstr);
this.Dispose();
SendDetail form1 = new SendDetail(this.Name);
form1.ShowDialog(); //模式窗口,先运行Form1的作用
}
} }窗口初始化的代码
this.textBox2.Text = "销售发货-" + this.Name;
this.lbczy.Text = user.UserName;
string strSql = "SELECT id as 流水号,item_no as 条码,sheet_no 单号 FROM mb_xs_detail where sheet_no='" + this.Name + "'";
string sqlcountqty = "select count(*) from mb_xs_detail where sheet_no='" + this.Name + "'"; SQLCEWrapper cetest = new SQLCEWrapper();
int j = int.Parse(cetest.ReObjectvalue(sqlcountqty).ToString());
this.lbqty.Text = j.ToString();
// 将 ResultSetView 绑定到 DataGrid 控件
this.dataGrid1.DataSource = cetest.resultSetView(strSql); //设置DataGrid 列宽 第一步
DataGridTableStyle myDataGridStyle = null;
GridColumnStylesCollection myDataGridColStyle = null;
myDataGridStyle = new DataGridTableStyle();
dataGrid1.TableStyles.Clear(); // 先清除格式
dataGrid1.TableStyles.Add(myDataGridStyle);//加载格式 // 设置dataGrid 列的宽度
myDataGridColStyle = dataGrid1.TableStyles[0].GridColumnStyles;
myDataGridColStyle[0].Width = 55;
myDataGridColStyle[1].Width = 150;
myDataGridColStyle[2].Width = 120;
}
解决方案 »
- 关于读文件那些事儿
- 窗体SHOW之前的方法有没有?
- 不能根据返回值来重载方法是什么意思
- TreeNode节点上显示的字符串,如何加粗?马上揭帖
- 回车触发按钮的单击问题,急
- 有在2005下面正常使用Enterprise Library的吗?
- VS2013的ASP.NET项目,不发布直接按F5如何让局域网内的机子访问?
- 新人高分求解答,RichTextBox 数据加密问题
- WinForm中的datagrid,增加一行后,.net认为有了数据修改,如果用户什么都不输入,我却
- 怎么给C#的自定义组件/控件加图标?
- 调试的时候 提示 未处理的FormatException
- Form2_VisibleChanged的问题
this.Dispose();
SendDetail form1 = new SendDetail(name);
这里既然是打开自己,那就根本没有必要先关闭自己,直接更新界面上的元素即可,这样效率更高,速度更快。
你说直接更新元素,提高效率,是不是插入了数据后,再次 重载datagrid ?
SendDetail form2 = new SendDetail(sheetno);
form2.ShowDialog(); //模式窗口,先运行Form1的作用
this.Dispose();
string sheetno = This.Name ;
this.Dispose();
SendDetail form2 = new SendDetail(sheetno);
form2.ShowDialog(); //模式窗口,先运行Form1的作用
不管 this.Dispose(); 都是会堆栈溢出 。望帮忙解决