对于IF循环无法正常工作

编程入门 行业动态 更新时间:2024-10-25 12:28:12
本文介绍了对于IF循环无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想用一个换,如果循环通过一些的CheckBoxList控件运行,看是否复选框被选中。如果选中,它会运行一个INSERT语句到数据库。

我的第一个的CheckBoxList(stapleCheckBoxList)的作品,因为它应该(例如,如果我选择了所有4个复选框,相应的项目将被插入到数据库)。然而,对于我第二次的CheckBoxList(seafoodCheckBoxList),它似乎只在做选择的第一个复选框一个INSERT。我的codeS低于任何人都可以找出什么是错?

保护无效btnTSubmit_Click(对象发件人,EventArgs的)     {         INT I;         INT intOrderNo =(int)的会话[sOrderNo];         INT数量;         INT单价;         串PRODID;         如果(txtPaxQty.Text!=的String.Empty)         {             单价= 12;             数量= int.Parse(txtPaxQty.Text);             PRODID =PK001;             OleDbConnection的DBconn2 =新的OleDbConnection();             DBconn2.ConnectionString =供应商= Microsoft.Jet.OLEDB.4.0;数据源=                         +使用Server.Mappath(〜/ App_Data文件/ ParissDB.mdb);             OleDbCommand的CMD =新的OleDbCommand();             cmd.Connection = DBconn2;             cmd.CommandType = System.Data.CommandType.Text;             cmd.CommandText =INSERT INTO itemsTable(iOrderNo,iProductId,iQty,iUnitPrice)             +VALUES(@OrderNo,@ProductID,@Qty,@UnitPrice);             cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);             cmd.Parameters.AddWithValue(@的ProductId,PRODID);             cmd.Parameters.AddWithValue(@数量,数量);             cmd.Parameters.AddWithValue(@单价,单价);             DBconn2.Open();             cmd.ExecuteNonQuery();             DBconn2.Close();         }         对于(i = 0; I< stapleCheckBoxList.Items.Count;我++)         {             字符串str =;             如果(stapleCheckBoxList.Items [I] .Selected)             {                 海峡= stapleCheckBoxList.Items [I]。文;                 OleDbConnection的DBconn =新的OleDbConnection();                 DBconn.ConnectionString =供应商= Microsoft.Jet.OLEDB.4.0;数据源=                             +使用Server.Mappath(〜/ App_Data文件/ ParissDB.mdb);                 数量= 0;                 单价= 0;                 OleDbCommand的CMD =新的OleDbCommand();                 cmd.Connection = DBconn;                 cmd.CommandType = System.Data.CommandType.Text;                 cmd.CommandText =INSERT INTO itemsTable(iOrderNo,iProductId,iQty,iUnitPrice)                 +VALUES(@OrderNo,@ProductID,@Qty,@UnitPrice);                 //装订                 如果(stapleCheckBoxList.Items [我]。文==杨洲州炒饭)                 {                     海峡=ST001;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(stapleCheckBoxList.Items [我]。文==菠萝炒饭)                 {                     海峡=ST002;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(stapleCheckBoxList.Items [我]。文==眉炒饭)                 {                     海峡=ST003;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(stapleCheckBoxList.Items [我]。文==炒乌冬面海鲜)                 {                     海峡=ST004;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 //Response.Redirect("Delivery.aspx);             }         }         对于(i = 0; I< seafoodCheckBoxList.Items.Count;我++)         {             字符串str2的=;             如果(seafoodCheckBoxList.Items [I] .Selected)             {                 STR2赛车= seafoodCheckBoxList.Items [I]。文;                 OleDbConnection的DBconn =新的OleDbConnection();                 DBconn.ConnectionString =供应商= Microsoft.Jet.OLEDB.4.0;数据源=                             +使用Server.Mappath(〜/ App_Data文件/ ParissDB.mdb);                 数量= 0;                 单价= 0;                 OleDbCommand的CMD =新的OleDbCommand();                 cmd.Connection = DBconn;                 cmd.CommandType = System.Data.CommandType.Text;                 cmd.CommandText =INSERT INTO itemsTable(iOrderNo,iProductId,iQty,iUnitPrice)                 +VALUES(@OrderNo,@ProductID,@Qty,@UnitPrice);                 //海鲜                 如果(seafoodCheckBoxList.Items [我]。文==奶油虾)                 {                     STR2赛车=SE002;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR2);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(seafoodCheckBoxList.Items [我]。文==麦片虾)                 {                     STR2赛车=SE001;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR2);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(seafoodCheckBoxList.Items [我]。文==泰式大虾)                 {                     STR2赛车=SE003;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR2);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 如果(seafoodCheckBoxList.Items [我]。文==烧烤鱿鱼)                 {                     STR2赛车=SE004;                     cmd.Parameters.AddWithValue(@ OrderNo,intOrderNo);                     cmd.Parameters.AddWithValue(@的ProductId,STR2);                     cmd.Parameters.AddWithValue(@数量,数量);                     cmd.Parameters.AddWithValue(@单价,单价);                     DBconn.Open();                     cmd.ExecuteNonQuery();                     DBconn.Close();                 }                 的Response.Redirect(Delivery.aspx);             }         }

解决方案

的Response.Redirect(Delivery.aspx);

是在你的为循环。因此,第一次经历的循环,你已经重定向。只需将重定向到为循环之后。

和你应该认真考虑重构你的code。有太多重复的东西,你可以转化为方法,等等。

I am trying to use a for-if loop to run through a few CheckBoxList controls, to see if a checkbox is checked. If checked, it will run an INSERT statement to the DB.

My first CheckBoxList (stapleCheckBoxList) works as it should (Eg. If i selected all 4 checkboxes, the corresponding items will be inserted into the db). However for my second CheckBoxList (seafoodCheckBoxList), it seems to only do an INSERT on the first checkbox that is selected. Could anyone identify whats wrong with my codes below?

protected void btnTSubmit_Click(object sender, EventArgs e) { int i; int intOrderNo = (int)Session["sOrderNo"]; int Qty; int UnitPrice; string ProdId; if (txtPaxQty.Text != String.Empty) { UnitPrice = 12; Qty = int.Parse(txtPaxQty.Text); ProdId = "PK001"; OleDbConnection DBconn2 = new OleDbConnection(); DBconn2.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("~/App_Data/ParissDB.mdb"); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBconn2; cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT INTO itemsTable(iOrderNo, iProductId, iQty, iUnitPrice)" + "VALUES (@OrderNo, @ProductId, @Qty, @UnitPrice)"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", ProdId); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn2.Open(); cmd.ExecuteNonQuery(); DBconn2.Close(); } for (i = 0; i < stapleCheckBoxList.Items.Count; i++) { String str = ""; if (stapleCheckBoxList.Items[i].Selected) { str = stapleCheckBoxList.Items[i].Text; OleDbConnection DBconn = new OleDbConnection(); DBconn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("~/App_Data/ParissDB.mdb"); Qty = 0; UnitPrice = 0; OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBconn; cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT INTO itemsTable(iOrderNo, iProductId, iQty, iUnitPrice)" + "VALUES (@OrderNo, @ProductId, @Qty, @UnitPrice)"; //Staple if (stapleCheckBoxList.Items[i].Text == "Yang Chow Fried Rice") { str = "ST001"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (stapleCheckBoxList.Items[i].Text == "Pineapple Fried Rice") { str = "ST002"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (stapleCheckBoxList.Items[i].Text == "Mee Goreng") { str = "ST003"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (stapleCheckBoxList.Items[i].Text == "Fried Udon with Seafood") { str = "ST004"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } //Response.Redirect("Delivery.aspx"); } } for (i = 0; i < seafoodCheckBoxList.Items.Count; i++) { String str2 = ""; if (seafoodCheckBoxList.Items[i].Selected) { str2 = seafoodCheckBoxList.Items[i].Text; OleDbConnection DBconn = new OleDbConnection(); DBconn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("~/App_Data/ParissDB.mdb"); Qty = 0; UnitPrice = 0; OleDbCommand cmd = new OleDbCommand(); cmd.Connection = DBconn; cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT INTO itemsTable(iOrderNo, iProductId, iQty, iUnitPrice)" + "VALUES (@OrderNo, @ProductId, @Qty, @UnitPrice)"; //Seafood if (seafoodCheckBoxList.Items[i].Text == "Butter Prawns") { str2 = "SE002"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str2); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (seafoodCheckBoxList.Items[i].Text == "Cereal Prawns") { str2 = "SE001"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str2); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (seafoodCheckBoxList.Items[i].Text == "Thai Style Prawns") { str2 = "SE003"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str2); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } if (seafoodCheckBoxList.Items[i].Text == "BBQ Squid") { str2 = "SE004"; cmd.Parameters.AddWithValue("@OrderNo", intOrderNo); cmd.Parameters.AddWithValue("@ProductId", str2); cmd.Parameters.AddWithValue("@Qty", Qty); cmd.Parameters.AddWithValue("@UnitPrice", UnitPrice); DBconn.Open(); cmd.ExecuteNonQuery(); DBconn.Close(); } Response.Redirect("Delivery.aspx"); } }

解决方案

The line

Response.Redirect("Delivery.aspx");

is inside your for loop. So the first time it goes through the loop, you are already redirected. Just move the redirect to after the for loop.

And you should SERIOUSLY think about refactoring your code. There's too much repeated stuff that you can convert into methods, among other things.

更多推荐

对于IF循环无法正常工作

本文发布于:2023-10-12 16:37:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1485283.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法正常   工作

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!