2016-08-26 86 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