我正在使用C#,Visual Studio 2005和SQL Server 2000。
我的问题如下。这是我的代码:
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar == Keys.Enter)
{
foreach (Control abcl in this.flowLayoutPanel1.Controls)
{
if (abcl.Name.Contains("bb") && abcl is TextBox)
{
int indx = this.flowLayoutPanel1.Controls.Count-1;
for (int i = 0; i < indx; i++)
{
string mess = "Sorry Empty.Records";
if (this.flowLayoutPanel1.Controls[i].Text == "")
{
MessageBox.Show(mess);
mess = null;
}
else
{
string connstr = "server=.;initial catalog= myDataBase pwd=mypasward";
SqlConnection con = new SqlConnection(connstr);
con.Open();
SqlCommand cmd1 = new SqlCommand("insert into debankA(companyID,transID,date,bank,totdepo,narrat) values " +
"(@companyID,@transID,Convert(datetime,'" + maskedTextBox1.Text.ToString() + "',103),@bank,@totdepo,@narrat)", con);
cmd1.Parameters.Add("@bank", SqlDbType.VarChar).Value = textBox1.Text;
cmd1.Parameters.Add("@totdepo", SqlDbType.Decimal).Value = label13.Text;
cmd1.Parameters.Add("@narrat", SqlDbType.VarChar).Value = textBox2.Text;
cmd1.Parameters.Add("@companyID", SqlDbType.Int).Value = label6.Text;
cmd1.Parameters.Add("@transID", SqlDbType.Int).Value = textBox4.Text;
cmd1.ExecuteNonQuery();
string pparticulars = null;
double? depo = null;
string messs = "Record Save Successfully";
foreach (Control ctl in this.flowLayoutPanel1.Controls)
{
if (ctl.Name.Contains("tbb") && ctl is TextBox)
{
pparticulars = ctl.Text;
}
if (ctl.Name.Contains("bb") && ctl is TextBox)
{
double ddepo = 0;
if (double.TryParse(ctl.Text, out ddepo))
depo = ddepo;
if (pparticulars != null && depo != null)
{
SqlCommand cmd = new SqlCommand("insert into debankB(particulars,deposit,companyID,transID)values" +
"(@particulars,@deposit,@companyID,@transID)", con);
cmd.Parameters.Add("@particulars", SqlDbType.VarChar).Value = pparticulars;
cmd.Parameters.Add("@deposit", SqlDbType.Decimal).Value = depo;
cmd.Parameters.Add("@companyID", SqlDbType.Int).Value = label6.Text;
cmd.Parameters.Add("@transID", SqlDbType.Int).Value = textBox4.Text;
cmd.ExecuteNonQuery();
pparticulars = null;
depo = null;
MessageBox.Show("Record Saved Successfully");
messs = null;
}
}
}
}
}
}
}
}
}
以上是flowlayoutpanel1上的多个文本框项目。有两个名为“tbb”和“bb”的文本框。问题是上面的工作正常,但只有时间与控件中的总文本框一样显示消息的问题。此代码中的else条件不能很好地工作。这就是两个消息显示而不是一个条件为真的原因。我不熟悉flowlayoutpanel。
答案 0 :(得分:0)
因为你有外循环遍历屏幕上的所有控件。这将遍历屏幕上的两个文本框。然后在该循环中,您将再次浏览所有文本框 - 因此您将两次验证bb文本框。