【发布时间】:2014-04-05 21:34:58
【问题描述】:
我无法弄清楚如何将字母数字字符串与其中也包含字母数字值的列表字符串进行比较。
例如:-
我有一个发票号:Sales111 为了检查数据库中是否存在同一张发票,我为此编写了代码
这里 CheckInvoice() 从数据表中返回所有发票号
public List<String> CheckInvoice()
{
try
{
SPDatalogic sp = new SPDatalogic(); //datalogic class
DataTable dt = new DataTable() ;
dt = sp.CheckInvoice();
List<String> list = new List<String>();
foreach (DataRow dr in dt.Rows)
{
list.Add(dr["invoice_id"].ToString());// column name of invoice no
}
return list;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
表示层:-
SPBusinesslogic ab = new SPBusinesslogic(); //businesslogic class
List<String> inv = new List<String>();
inv = ab.CheckInvoice();
if (inv.Any(x => x.Equals(invoiceid_textbox.Text.Trim())))
{
MessageBox.Show("The invoice already exist!");
}
我可以通过哪些方式进行检查? 不排序字母和数字怎么办?
【问题讨论】:
-
你能用
ab.CheckInvoice()返回的值更新你的问题吗? -
我不知道你想听到什么答案。
-
@RandRandom 我写的代码不起作用我认为我在表示层比较存在问题
-
@geedubb 我更新了! checkInvoice 从数据表中返回所有发票号
-
顺便说一句:当数据库中只有几张发票时,加载所有发票数据的方法在开始时效果很好。将发票 ID 发送到数据库并检查具有该 ID 的记录是否已经存在而不是加载所有数据会更有效。这将更好地扩展。