C# 如何从Oracle和sql表中搜索值

C# 如何从Oracle和sql表中搜索值,c#,sql,oracle,webapi,C#,Sql,Oracle,Webapi,我是一个新的发展和在泡菜。我这里有4种不同情况的过滤器。位置,车号和从现在到现在 我需要能够使用此组合或任意组合在表中搜索字段 我正在搜索值Type、coilid、view、delivery no、carg no和image 我通过web api调用字段:以下是主要函数: [HttpPost] [Route("GetReports")] public IHttpActionResult GetReports(string jwt, List<object> da

我是一个新的发展和在泡菜。我这里有4种不同情况的过滤器。位置,车号和从现在到现在

我需要能够使用此组合或任意组合在表中搜索字段

我正在搜索值Type、coilid、view、delivery no、carg no和image

我通过web api调用字段:以下是主要函数:

[HttpPost]
[Route("GetReports")]
public IHttpActionResult GetReports(string jwt, List<object> data)
{    
    if (!Common.VerificationToken.VerifyJWToken(jwt))
    {
        return null;
    }
    if (data != null)
    {
        var to = data[0];
        var from = data[1];
        DateTime toDate = Convert.ToDateTime(to);
        DateTime fromDate = Convert.ToDateTime(from);
        var location = data[2]?.ToString();
        var wagon = data[3]?.ToString();

        GetLocationCode(location);
        string code = "";

        string location1 = GetLocationCode(location);
    
        var ReportData = db.T_CQL_COIL_DESC.Where(t => t.CCD_CREATED_ON >= toDate && 
        t.CCD_CREATED_ON <= fromDate || (t.CCD_COIL_LOCATION == location1)).ToList();

        ReportsDTO dto = new ReportsDTO();
        List<ReportsDTO> ReportDTO = new List<ReportsDTO>();
        try
        {
            foreach (var report in ReportData)
            {
                List<vehicledetail> vehicle = new List<vehicledetail>();
                      
                dto = new ReportsDTO();
                dto.Type = report.CCD_OP_TYPE;
                dto.ID = report.CCD_COIL_ID;
                vehicle = GetVehicleID(dto.ID,wagon);
                        
                vehicledetail vehicledetails = vehicle[0];
                dto.vehicleno = vehicledetails.vehicleno?.ToString();
                dto.wagonno = vehicledetails.wagonno?.ToString();
                //dto.vehicleno = vehicledetails.vehicleno == null ? string.Empty : 
                vehicledetails.vehicleno.ToString();
                //dto.wagonno = vehicledetails.wagonno == null ? string.Empty : 
                vehicledetails.wagonno.ToString();
                dto.Active = report.CCD_ACTIVE;
                dto.ImgURL = report.CCD_IMAGE_URL != null ? imgurl + report.CCD_IMAGE_URL : 
                     "NA";
                dto.Desc = report.CCD_VIEW_DESC != null ? report.CCD_VIEW_DESC : "NA";
                if (vehicle.Count > 1)
                {
                    for (int i = 0; i < vehicle.Count; i++)
                    {
                        dto.vehicleno = vehicledetails.vehicleno[i].ToString();
                        dto.wagonno = vehicledetails.wagonno[i].ToString();
                        ReportDTO.Add(dto);
                     }
                 }
                 else
                     ReportDTO.Add(dto);
            }
            return Ok(ReportDTO);
        }
        catch (Exception ex)
        {
            return Content(HttpStatusCode.NoContent, "Something went wrong");
        }

    }
    else
    {
        return BadRequest();
    }
}




public List<vehicledetail> GetVehicleID(string coilID,string wagon)
{
    if (wagon != "")
    {
        List<vehicledetail> vehicle = new List<vehicledetail>();
        vehicledetail vehicledetails = new vehicledetail();
        string oradb = Utilities.STAR_DB;

        OracleConnection conn = new OracleConnection(oradb);
    
        string query = "SELECT distinct a.Vbeln, b.WAGON_NO FROM sapr3.lips a, sapr3.ZVTRRDA 
        b WHERE a.MANDT='600' AND a.CHARG='" + coilID + "'  AND a.LFIMG > 0 AND 
         (b.WAGON_NO='" + wagon + "') AND a.MANDT = b.MANDT AND a.VBELN = b.VBELN";


          OracleDataAdapter da = new OracleDataAdapter(query, conn);
          DataTable dt = new DataTable();
          conn.Open();
          da.Fill(dt);
          conn.Close();
          if (dt.Rows.Count > 0)
          {
              foreach (DataRow row in dt.Rows)
              {
                  vehicledetails.vehicleno = row["VBELN"].ToString();
                  vehicledetails.wagonno = row["WAGON_NO"].ToString();
              }
          }
          vehicle.Add(vehicledetails);
          return (vehicle);
      }
            else
            {
                List<vehicledetail> vehicle = new List<vehicledetail>();
                vehicledetail vehicledetails = new vehicledetail();
                string oradb = Utilities.STAR_DB;

                OracleConnection conn = new OracleConnection(oradb);


                string query = "SELECT distinct a.Vbeln, b.WAGON_NO FROM sapr3.lips a, sapr3.ZVTRRDA 
                b WHERE a.MANDT='600' AND a.CHARG='" + coilID + "'  AND a.LFIMG > 0 AND a.MANDT = 
                b.MANDT AND a.VBELN = b.VBELN";


                OracleDataAdapter da = new OracleDataAdapter(query, conn);
                DataTable dt = new DataTable();
                conn.Open();
                da.Fill(dt);
                conn.Close();
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        vehicledetails.vehicleno = row["VBELN"].ToString();
                        vehicledetails.wagonno = row["WAGON_NO"].ToString();
                    }
                }
                vehicle.Add(vehicledetails);
                return (vehicle);
            }
        }


public static string GetLocationCode(string location)
{
    string connectionstring = Utilities.SQL_DB;// our SQL DB connection
    SqlConnection conn1 = new SqlConnection(connectionstring);
            
    DataTable dataTable = new DataTable();

    string query = "select distinct T_PLANT_CD from T_PLANT_INFO where(T_BUSS_AREA 
     ='TATASTEEL' or T_BUSS_AREA like '%YRD') and T_PLANT_CD NOT IN('SUP', 'MRD') and 
     T_PLANT_DESC = '"+location+"'";

      SqlConnection conn = new SqlConnection(connectionstring);
      SqlCommand cmd = new SqlCommand(query, conn);
      conn.Open();
      string code = ((string)cmd.ExecuteScalar());


      // create data adapter
      SqlDataAdapter da = new SqlDataAdapter(cmd);
      // this will query your database and return the result to your datatable
      da.Fill(dataTable);

      DataRow dr;//= new DataRow();    
      conn1.Close();
      da.Dispose();
      return (code);                
}
[HttpPost]
[路线(“获取报告”)]
公共IHttpActionResult GetReports(字符串jwt,列表数据)
{    
如果(!Common.VerificationToken.VerifyJWToken(jwt))
{
返回null;
}
如果(数据!=null)
{
var to=数据[0];
var from=数据[1];
DateTime toDate=Convert.ToDateTime(到);
DateTime fromDate=Convert.ToDateTime(从);
变量位置=数据[2]?.ToString();
var VAG=数据[3]?.ToString();
GetLocationCode(位置);
字符串代码=”;
字符串location1=GetLocationCode(位置);
var ReportData=db.T\u CQL\u COIL\u DESC.其中(T=>T.CCD\u CREATED\u ON>=toDate&&
t、 CCD_已创建(1上的_)
{
对于(int i=0;i0和
(b.cargo_NO='“+cargo+”)和a.MANDT=b.MANDT和a.VBELN=b.VBELN”;
OracleDataAdapter da=新的OracleDataAdapter(查询,连接);
DataTable dt=新的DataTable();
conn.Open();
da.填充(dt);
康涅狄格州关闭();
如果(dt.Rows.Count>0)
{
foreach(数据行中的数据行)
{
vehicledetails.vehicleno=行[“VBELN”].ToString();
vehicledetails.wagonno=第[“WAGON_NO”]行。ToString();
}
}
车辆。添加(车辆详细信息);
返回(车辆);
}
其他的
{
列表车辆=新列表();
vehicledetail vehicledetails=新车辆详情();
字符串oradb=Utilities.STAR\u DB;
OracleConnection conn=新的OracleConnection(oradb);
string query=“从sapr3.a、sapr3.ZVTRRDA中选择不同的a.Vbeln、b.wago\u编号
其中a.MANDT='600'和a.CHARG='“+coilID+”,a.LFIMG>0和a.MANDT=
b、 MANDT和a.VBELN=b.VBELN”;
OracleDataAdapter da=新的OracleDataAdapter(查询,连接);
DataTable dt=新的DataTable();
conn.Open();
da.填充(dt);
康涅狄格州关闭();
如果(dt.Rows.Count>0)
{
foreach(数据行中的数据行)
{
vehicledetails.vehicleno=行[“VBELN”].ToString();
vehicledetails.wagonno=第[“WAGON_NO”]行。ToString();
}
}
车辆。添加(车辆详细信息);
返回(车辆);
}
}
公共静态字符串GetLocationCode(字符串位置)
{
string connectionstring=Utilities.SQL\u DB;//我们的SQL DB连接
SqlConnection conn1=新的SqlConnection(connectionstring);
DataTable=新的DataTable();
string query=“从T\U工厂信息中选择不同的T\U工厂CD,其中(T\U总线区域
='TATASTEEL'或T_-BUSS_区域,如'%YRD')和T_-PLANT_CD不在('SUP','MRD')和
工厂名称=“+位置+”;
SqlConnection conn=新的SqlConnection(connectionstring);
SqlCommand cmd=新的SqlCommand(查询,连接);
conn.Open();
字符串代码=((字符串)cmd.ExecuteScalar());
//创建数据适配器
SqlDataAdapter da=新的SqlDataAdapter(cmd);
//这将查询数据库并将结果返回到datatable
da.填充(数据表);
DataRow dr;/=新DataRow();
conn1.Close();
da.Dispose();
返回(代码);
}
我通过GetvehicleID函数获取车辆编号和货车编号的车辆代码。这位于oracle表中。我通过SQL表的GetLocationCode函数添加位置代码

我通过document.getElementID函数获取下拉列表和文本字段中的值

问题是当我只是把马车不,它不是在应用程序中搜索

问题是,我从SQL表中获取了所有值,但从oracle获取的VAG no和deliveryno除外,并将其添加到UI中。sql表不包含wagonno详细信息,因此无法搜索它

我正在将dto变量中的所有值添加到datatable中。这可以用来获取值


请建议怎么做?我如何使用Wagonno在应用程序中搜索详细信息?

什么是“SQL表”,而不是“Oracle表”?Oracle数据库和SQL数据库据我所知,没有“SQL数据库”。实际上,您是否使用Microsoft S