日期:2014-05-18  浏览次数:20611 次

2表 多条件模糊 求解
A表:ID(主键); 供应商名称; 生产计划号; 发货日期; 制单人; 制单日期; 备注。

B表:明细ID(主键);ID; 产品名称;型号;数量;审核;审核说明。

2表有ID,主外键。

现在需要
  //获取客户名称和订单号和时间区间
  string 生产计划号 = select_1.Text.Trim();
   

  //声明查询语句变量
  string 生产计划号SQL = "";
  string 审核SQL = "";
  string extractSql = "";

   
  //声明查询语句变量
  string 生产计划号SQL = "";
  string 审核SQL = "";
  string extractSql = "";


  //如果生产计划号不为空,生成生产计划号SQL 语句
  if (生产计划号 != "")
  生产计划号SQL = " AND 生产计划号 LIKE '%" + 生产计划号 + "%'";
   

  //如果“审核”不为空,生成审核SQL语句
  if (AuditEnd_select.SelectedValue != "NULL")
  {
  审核SQL = " AND 审核 = '" + AuditEnd_select.SelectedValue.ToString() + "'";

  }

   
  //综合查询语句 多表查询
  extractSql = ??????如何查询得到以下9个字段(3个属A表,7个属于B表)
  (需要得到:生产计划号;ID;明细ID; 产品名称;型号;数量;审核;审核说明,备注)



------解决方案--------------------
数据库提供了存储过程,那么就尽量使用存储过程。
在程序中拼接sql语句,然后执行是非常低效率的设计。

一般来说都是在程序中执行存储过程,条件变量作为参数给入。
在数据库里面就能更高效率的写程序。