2016-08-26 39 views
0

我有一个数据绑定复选框列表。我使用嵌套循环中复选框列表中的项目。在那个foreach循环中,我有一个for循环,它从用户输入中获取一个数字,并从所需数量生成图像。每输入一个号码,该号码都被添加到数据库中。是否有可能让我的循环启动,无论我的数据库中的值是什么,然后生成从数据库值开始输入的图像数量。在foreach中的for循环中使用数据库值

CREATE TABLE AccountTable 
(
    RowID int IDENTITY(1, 1), 
    AccountID varchar(2), 
    AccountName varchar(50), 
    SeqNum int, 
    SeqDate datetime 
) 



    public class dbvalue 
    { 
     public int db_value { get;set; } 
    } 

     //OnClick Method 
     cmd.CommandText ="SELECT SeqNum FROM AccountTable;"; 
     int i = Int32.Parse(amount.Text); 
     SqlDataReader sdr = cmd.ExecuteReader(); 

     while (sdr.Read()) 
     { 
      int k(int)sdr["SeqNum"]; 
      foreach(List item in CheckBoxList1.Items) 
      {  
       for(int n = k; n <= i; n++) 
       { 

       if (item.Selected) 
       { 

        System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image(); 
        string barcode_label = item.Text + "QTY:___________" 


       string barode_data = item.Value + datepicker.Text + n.ToSTring("D2"); 

       Bitmap dynImage = DrawBarcode(barcode_data, barcode_label) 

       MemoryStream ms = new MemoryStream(); 

       dynImage.Save(ms, ImageFormat.Jpeg); 

       byte[] byteImage = ms.ToArray(); 

       Convert.ToBase64String(byteImage); 

       img.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(byteImage); 

       panel1.Controls.Add(img); 

       double spacing; 

       double mg = 5; 

       spacing = img.Width.Value + mg; 

      } 

     } 

     } 

    } 
+0

是的,可以让起始值使用数据库中的值。它要求你查询数据库,然后设置一个变量。 –

+0

忘了在我的问题中添加我的命令,我这样做,但它的行为奇怪,它在用户数量开始,并产生荒谬的金额,我假设它必须做与foreach循环和1值选择它会生成等于项目列表中所有数字的金额。 – walangala

+0

SeqQuant不是你的CREATE TABLE语句所描述的AccountTable的一列 –

回答

0

你要查询的数据库中的当前值开始从,查询等,这将做到这一点:

SELECT MAX(SeqNum) as MaxSeq FROM AccountTable 

运行这样最简单的方法是:

​​

您现在有maxSeq变量,它是表格中SeqNum的最大值。加1,并使其你的下一个插入

-

这将是很好,如果你只曾经计划使用这个程序一台PC上。如果您计划将多台计算机插入此表中,则应该考虑另一种计算图像的方式 - 可能是数据库使用其自身的标识列自动增量来执行此操作,否则您将面临多条记录具有相同的SeqNum值

+0

所以我会用它作为'for(int n = maxseq; n <= i; n ++)'? – walangala

+0

它适用于几次尝试,但在继续生成测试之后,它会停止生成图像,除非用户输入的数字大于maxseq,但数据库中的计数器会继续正确更新。 – walangala