2016-08-26 6 views
0

私はデータバインドチェックボックスリストを持っています。ネストされたループ内のチェックボックスリスト内の項目を使用します。そのforeachループの中で、私はユーザー入力から数値を受け取り、希望の量から画像を生成するforループを持っています。数字を入力するたびに、その番号がデータベースに追加されます。データベースの値がどこにあっても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ループとは関係なく、アイテムリストのすべての数値に等しい金額を生成します。 – walangala

+0

SeqQuantは、CREATE TABLEステートメントで記述されたAccountTableの列ではありません –

答えて

0

あなたはこのようなクエリはそれを行うだろう、から開始する現在の値をデータベースに照会したいと思う:

SELECT MAX(SeqNum) as MaxSeq FROM AccountTable 

などを実行する最も簡単な方法はである:

​​

これで、テーブル内のSeqNumの最大値であるmaxSeq変数が得られました。それに1を追加し、あなたの次のインサート作る

-

あなただけの今まで一台のPC上でこのアプリを使用する予定の場合、これは罰金になります。このテーブルに複数のコンピュータを挿入する予定がある場合は、画像を数える別の方法を検討する必要があります。データベースにID列の自動インクリメントを実行すると、おそらく複数のレコードが同じSeqNum値

+0

私は 'for(int n = maxseq; n <= i; n ++)'としてそれを使用しますか? – walangala

+0

よく試してみましたが、テストを続けると、ユーザーがmaxseqより大きい数値を入力しない限り、イメージの生成は停止しますが、データベースのカウンタは引き続き正しく更新されます。 – walangala

関連する問題