在foreach中的for循环中使用数据库值

本文关键字:数据库 循环 foreach 中的 for | 更新日期: 2023-09-27 18:04:06

我有一个绑定复选框列表。我在嵌套循环中使用复选框列表中的项。在foreach循环中,我有一个for循环,它从用户输入中获取一个数字,并根据所需的数量生成图像。每次输入一个数字,该数字就被添加到数据库中。是否有可能让我的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;
            }
        }
    }
}

在foreach中的for循环中使用数据库值

您需要在数据库中查询当前值,以便从当前值开始,下面的查询可以做到这一点:

SELECT MAX(SeqNum) as MaxSeq FROM AccountTable

最简单的方法是:

var cmd = new SqlCommand("that SQL here", new SqlConnection("connection string here"))
cmd.Connection.Open()
var maxseq = Convert.ToInt32(cmd.ExecuteScalar());

你现在有maxSeq变量,这是你的表中SeqNum的最大值。添加1,并将其作为下一个插入

如果你只打算在一台PC上使用这个应用程序,这将是很好的。如果您计划让多台计算机插入到这个表中,那么您真的应该考虑另一种形式的图像计数—可能让数据库使用其标识列自动递增来进行计数,否则您将面临多个记录具有相同SeqNum值

的风险。