我的更新查询无法在foreach循环中工作.有人可以知道解决方案吗 [英] My update Query is not working in foreach loop.can anyone Know the solution

查看:44
本文介绍了我的更新查询无法在foreach循环中工作.有人可以知道解决方案吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码

字符串invoiceno = txtInvoiceNo.Text.Trim();
字符串pur_date = dtpPurchaseDate.Value.ToString("yyyy-MM-dd");
字符串供应商代码= lblSupCode.Text;
//字符串机架= txtRack.Text;
//Double disc = Double.Parse(txtDiscount.Text);
字符串stock_sql =插入master_stock(产品代码,产品名称,类别,批号,数量,包装,购买率")+
"PackMRP,UnitMRP,单位购买率,税金,reorder_level,制造商,到期日期,供应商代码,佣金,DSLimit,发票,购买日期,Numoftablets,折扣,机架,状态)值";
字符串purc_sql =插入购买(billno,产品代码,产品名称,类别,batchno,数量,包装,购买率)," +
税额,单位购买率,供应商代码,购买日期,到期日期,佣金,数位平板电脑,taxamt,单位税,免费数量,金额,PackMRP,UnitMRP,reorder_level,制造商,DSLimit,折扣,机架)值";

foreach(dt.Rows中的DataRow行)
{
字符串pname = row ["ProductName"].ToString();
字符串pcode = row ["Code"].ToString();
字符串类别= row [类别"] .ToString();
字符串batchno = row ["BatchNo"].ToString();
Double qnty = Double.Parse(row ["Quantity"].ToString());
双重包装= Double.Parse(row ["Packing"].ToString());
Double purrate = Double.Parse(row ["PurchaseRate"].ToString());
Double unitchaserate = Math.Round(purrate/packing,2);
Double numoftablets = Math.Round(packing * qnty);
字符串packMRP = row ["PackMRP"].ToString();
字符串unitMRP = row ["UnitMRP"].ToString();
字符串税= row ["Tax"].ToString();
字符串ROlevel = row ["ROLevel"].ToString();
字符串制造商= row ["Manufacturer"].ToString();
字符串expdate = row ["ExpDate"].ToString();
//String mfgdate = row ["MfgDate"].ToString();
Double commi = Convert.ToDouble(row ["Commission"].ToString());
字符串dslimit = row ["DSLimit"].ToString();
Double disc = double.Parse(row ["discount"].ToString());
双倍金额= Double.Parse(row ["Amount"].ToString());
字符串机架=行[机架"] .ToString();
Double Taxamt = Double.Parse(row ["TaxAmt"].ToString());
Double unittax = Double.Parse(row ["UnitTax"].ToString());
Double freeqnty = Double.Parse(row ["FreeQnty"].ToString());
Double numoftablets1 =(数量+免费数量)*包装;
双倍数量=数量+免费数量;
字符串supname = cmbSupName.Text;

DataSet dd1 = new DataSet();
dd1 = dbe.getData(从master_stock中选择*,其中invoiceno ="" + txtInvoiceNo.Text +");
if(dd1.Tables [0] .Rows.Count> 0)
{
字符串sql3 ="update master_stock set productcode =""+ pcode +",productname =""+ pname +"'',category =" +类别+",batchno =" +
batchno +'',数量=" +数量+,包装= +包装+",购买率= +精制+,PackMRP =" + packMRP +,UnitMRP =" + unitMRP +,Unitpurchaserate =" +
unitpurchaserate +,tax =" +税+,reorder_level =" + ROlevel +,manufacturer =""+制造商+"'',expirydate =""+ expdate +",供应商代码=" +
供应商代码+,commission =" + commi +,DSLimit =" + dslimit +,invoiceno =""+ invoiceno +"'',Numoftablets ="+ numoftablets1 +",discount ="+光盘+",机架= ""+
机架+''where invoiceno ="" + txtInvoiceNo.Text +''";
dbe.updateData(sql3);

}
其他
{
stock_sql + =(""+ pcode +"''," + pname +'',""+类别+"''," + batchno +''," +
数量+," +包装+," +精制+," + packMRP +," + unitMRP +," +单位购买率+," +税金+," + ROlevel +,""+
制造商+'',""+到期日+"," +供应商代码+," + commi +," + dslimit +,""+发票+",""+ pur_date + ","+ numoftablets1 +","+光盘+"," +机架+''," 0),";;
stock_sql = stock_sql.Substring(0,stock_sql.Length-1);
dbe.updateData(stock_sql);
}
DataSet dd = new DataSet();
dd = dbe.getData("select * from billno =""+ txtInvoiceNo.Text +"'')购买的商品;
if(dd.Tables [0] .Rows.Count> 0)
{
字符串sql2 =更新购买设置productcode =""+ pcode +",productname ="" + pname +'',category =""+类别+"'',batchno =""+
batchno +'',quantity =" +数量+,packing =" +包装+,purchaserate =" + purrate +,tax =" +税+,Unitpurchaserate =" + unitpurchaserate +,供应商代码=" "+
供应商代码+'',expirydate =""+过期+",commission =" + commi +,Numoftablets =" + numoftablets1 +,taxamt =" +紫杉醇+,unittax =" + unittax +, freeqnty ="+
freeqnty +,Amount =" +金额+,PackMRP =" + packMRP +,UnitMRP =" + unitMRP +,reorder_level =" + ROlevel +,manufacturer =""+
制造商+'',DSLimit =" + dslimit +,discount =" +光盘+,rack ="" +机架+''其中billno ="''"+ txtInvoiceNo.Text +"";
dbe.updateData(sql2);
}
其他
{
purc_sql + =(""+发票+",""+ pcode +",""+ pname +"''," +
类别+''," +批号+","+数量+","+包装+","+精制+","+税+","+单位购买+
," +供应商代码+,""+ pur_date +",""+ expdate +"," + commi +," + numoftablets1 +," +出租车+," +单位税+ ," +免费数量+," +金额+," + packMRP +," + unitMRP +," +
ROlevel +,""+制造商+"," + dslimit +," +光盘+,""+机架+"''),;
purc_sql = purc_sql.Substring(0,purc_sql.Length-1);
dbe.updateData(purc_sql);

}
}

this is my code

String invoiceno = txtInvoiceNo.Text.Trim();
String pur_date = dtpPurchaseDate.Value.ToString("yyyy-MM-dd");
String suppliercode = lblSupCode.Text;
//String rack = txtRack.Text;
//Double disc = Double.Parse(txtDiscount.Text);
String stock_sql = "insert into master_stock (productcode,productname,category,batchno,quantity,Packing,Purchaserate," +
"PackMRP,UnitMRP,Unitpurchaserate,tax,reorder_level,manufacturer,expirydate,suppliercode,commission,DSLimit,invoiceno,purchasedate,Numoftablets,discount,rack,status) values ";
String purc_sql = "insert into purchases (billno,productcode,productname,category,batchno,quantity,packing,purchaserate," +
"tax,Unitpurchaserate,suppliercode,purchasedate,expirydate,commission,Numoftablets,taxamt,unittax,freeqnty,Amount,PackMRP,UnitMRP,reorder_level,manufacturer,DSLimit,discount,rack) values ";

foreach (DataRow row in dt.Rows)
{
String pname = row["ProductName"].ToString();
String pcode = row["Code"].ToString();
String category = row["Category"].ToString();
String batchno = row["BatchNo"].ToString();
Double qnty = Double.Parse(row["Quantity"].ToString());
Double packing = Double.Parse(row["Packing"].ToString());
Double purrate = Double.Parse(row["PurchaseRate"].ToString());
Double unitpurchaserate = Math.Round(purrate / packing, 2);
Double numoftablets = Math.Round(packing * qnty);
String packMRP = row["PackMRP"].ToString();
String unitMRP = row["UnitMRP"].ToString();
String tax = row["Tax"].ToString();
String ROlevel = row["ROLevel"].ToString();
String manufacturer = row["Manufacturer"].ToString();
String expdate = row["ExpDate"].ToString();
//String mfgdate = row["MfgDate"].ToString();
Double commi = Convert.ToDouble(row["Commission"].ToString());
String dslimit = row["DSLimit"].ToString();
Double disc = double.Parse(row["discount"].ToString());
Double amount = Double.Parse(row["Amount"].ToString());
String rack = row["rack"].ToString();
Double taxamt = Double.Parse(row["TaxAmt"].ToString());
Double unittax = Double.Parse(row["UnitTax"].ToString());
Double freeqnty = Double.Parse(row["FreeQnty"].ToString());
Double numoftablets1 = (qnty + freeqnty) * packing;
Double quantity = qnty + freeqnty;
String supname = cmbSupName.Text;

DataSet dd1 = new DataSet();
dd1 = dbe.getData("select * from master_stock where invoiceno=''" + txtInvoiceNo.Text + "''");
if (dd1.Tables[0].Rows.Count > 0)
{
string sql3 = "update master_stock set productcode=''" + pcode + "'',productname=''" + pname + "'',category=''" + category + "'',batchno= ''" +
batchno + "'',quantity=" + quantity + ",Packing=" + packing + ",Purchaserate=" + purrate + ",PackMRP=" + packMRP + ",UnitMRP=" + unitMRP + ",Unitpurchaserate=" +
unitpurchaserate + ",tax=" + tax + ",reorder_level=" + ROlevel + ",manufacturer=''" + manufacturer + "'',expirydate=''" + expdate + "'',suppliercode=" +
suppliercode + ",commission=" + commi + ",DSLimit=" + dslimit + ",invoiceno=''" + invoiceno + "'',Numoftablets=" + numoftablets1 + ",discount=" + disc + ",rack=''" +
rack + "'' where invoiceno=''" + txtInvoiceNo.Text + "''";
dbe.updateData(sql3);

}
else
{
stock_sql += "(''" + pcode + "'',''" + pname + "'',''" + category + "'',''" + batchno + "''," +
quantity + "," + packing + "," + purrate + "," + packMRP + "," + unitMRP + "," + unitpurchaserate + "," + tax + "," + ROlevel + ",''" +
manufacturer + "'',''" + expdate + "''," + suppliercode + "," + commi + "," + dslimit + ",''" + invoiceno + "'',''" + pur_date + "''," + numoftablets1 + " ," + disc + ",''" + rack + "'',''0''),";
stock_sql = stock_sql.Substring(0, stock_sql.Length - 1);
dbe.updateData(stock_sql);
}
DataSet dd = new DataSet();
dd = dbe.getData("select * from purchases where billno=''" + txtInvoiceNo.Text + "''");
if (dd.Tables[0].Rows.Count > 0)
{
string sql2 = "update purchases set productcode=''" + pcode + "'',productname=''" + pname + "'',category=''" + category + "'',batchno=''" +
batchno + "'',quantity=" + qnty + ",packing=" + packing + ",purchaserate=" + purrate + ",tax=" + tax + ",Unitpurchaserate=" + unitpurchaserate + ",suppliercode=''" +
suppliercode + "'',expirydate=''" + expdate + "'',commission=" + commi + ",Numoftablets=" + numoftablets1 + ",taxamt=" + taxamt + ",unittax=" + unittax + ",freeqnty=" +
freeqnty + ",Amount=" + amount + ",PackMRP=" + packMRP + ",UnitMRP=" + unitMRP + ",reorder_level=" + ROlevel + ",manufacturer=''" +
manufacturer + "'',DSLimit=" + dslimit + ",discount=" + disc + ",rack=''" + rack + "'' where billno=''" + txtInvoiceNo.Text + "''";
dbe.updateData(sql2);
}
else
{
purc_sql += "(''" + invoiceno + "'',''" + pcode + "'',''" + pname + "'',''" +
category + "'',''" + batchno + "''," + qnty + "," + packing + "," + purrate + "," + tax + "," + unitpurchaserate +
"," + suppliercode + ",''" + pur_date + "'',''" + expdate + "''," + commi + "," + numoftablets1 + "," + taxamt + "," + unittax + "," + freeqnty + "," + amount + "," + packMRP + "," + unitMRP + "," +
ROlevel + ",''" + manufacturer + "''," + dslimit + "," + disc + ",''" + rack + "''),";
purc_sql = purc_sql.Substring(0, purc_sql.Length - 1);
dbe.updateData(purc_sql);

}
}

推荐答案

这是丑陋,难以维护,不安全且不可读的代码.尝试从参数化的存储过程重新开始,看看是否看不清.一个好的第一步是在表述层中编写一个适当的数据层,而不是使用这种凌乱的SQL.我会解雇写这样的代码的任何人,希望您这样做只是为了学习,而不是为了工作.
This is hideously ugly, unmaintainable, insecure and unreadable code. Try to start again with a paramaterised stored procedure and see if you can''t make this legible. A good first step would be to write a proper data layer, instead of this messy, SQL in the presentation layer stuff. I''d fire anyone who wrote code like this, I hope you''re doing it just to learn, and not for a job.


这篇关于我的更新查询无法在foreach循环中工作.有人可以知道解决方案吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆