我试图从数据库中获取1行并将其填充到datatable,但在将数据填充到datatable时出现错误。昨天还好好的,突然就出了这种事。
用于返回订单上最后一行的函数,以便在添加更多订单行时使用该最后一行订单。此函数调用一次,在代码宽度内无循环调用.用户点击按钮生成一组条码,条码调用生成函数,生成函数调用生成函数(从数据库中检索行)。
这里是代码错误的部分(从数据库中检索行):
public String getLastBarcodeByFirstChar(char c)
{
DataTable dataTable = new DataTable();
using (SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand($"SELECT TOP 1 barcode FROM Barcodes WHERE barcode LIKE '{c}%' ORDER BY Id DESC", Con))
{
SqlDataAdapter ad = new SqlDataAdapter(cmd);
//ad.ReturnProviderSpecificTypes = true;
ad.Fill(dataTable);
}
}
foreach(DataRow r in dataTable.Rows)
{
return r["barcode"].ToString();
}
return string.Empty;
}
字符串
函数调用此条码上的生成条码函数
public string GenerateRandomEan13Barcode(char x)
{
...
String lastBarcode = func.getLastBarcodeByFirstChar(x);
...
}
型
叫那里
public string getBarcode(char c)
{
EncryptFuc encryptFuc = new EncryptFuc();
string barcode = encryptFuc.GenerateRandomEan13Barcode(c);
if (IsContainBarcode(barcode))
{
getBarcode(c);
}
return barcode;
型
当用户点击按钮时调用,直接调用,没有循环。
protected void BtnGenerateBarcodesRange_Click(object sender, EventArgs e)
{
...
//generate the barcode
string Barcode = assetDo.getBarcode(x[0]);
...
}
型
你能告诉我我错过了什么吗
1条答案
按热度按时间sr4lhrrt1#
我发现这个问题由汉斯Ke ing评论
,
getBarcode
函数循环递归无穷大,,因为IsContainBarcode(条形码)函数上的错误。