@人人都有一个梦想,每天都在圆这个梦...... <-- 记录学习中点滴,一步步成长 ^o^ -->

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;

		}

posted @ 2010-11-18 14:19  有你的城市  阅读(2593)  评论(0编辑  收藏  举报