C# 中动态构建 SQL查询的 where 条件
public ArrayList Load(string accountNo,string fAccountNo,string sort) { ArrayList result = new ArrayList(); ArrayList arrlst = new ArrayList(); if(accountNo != null && accountNo.Length > 0) arrlst.Add("A.account_No like '%" + Common.MakeReplace(accountNo) + "%'"); if(fAccountNo != null && fAccountNo.Length > 0) arrlst.Add("A.f_Account_No like '%" + Common.MakeReplace(fAccountNo) + "%'"); if(sort != null && sort.Length > 0) arrlst.Add("A.sort = '" + Common.MakeReplace(sort) + "'"); string strWhereFilters = ""; if(arrlst.Count > 0) { string[] arrFilter = new string[arrlst.Count]; arrlst.CopyTo(arrFilter); strWhereFilters = " WHERE " + string.Join(" AND ",arrFilter); } SelectSqlText = "SELECT A.*,B.ACCOUNT_C_NAME ACCOUNT_NAME,B.Account_Property FROM " + TABLE_NAME + " A "+ " INNER JOIN ATA02M B ON B.ACCOUNT_NO=A.ACCOUNT_NO "+ strWhereFilters+ " ORDER BY A.F_ACCOUNT_NO nulls first,A.SORT "; DataTable dt = new DataTable(); FillDataTable(dt); foreach(DataRow dr in dt.Rows) { ATA03M ata =new ATA03M(); RowMapper(dr,ata); ata.AccountName = dr["Account_Name"].ToString().Trim(); ata.AccountProperty = dr["Account_Property"].ToString(); result.Add(ata); } return result; }