在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;
}
}
}
}
您需要在数据库中查询当前值,以便从当前值开始,下面的查询可以做到这一点:
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值