C# 如何从Oracle和sql表中搜索值
我是一个新的发展和在泡菜。我这里有4种不同情况的过滤器。位置,车号和从现在到现在 我需要能够使用此组合或任意组合在表中搜索字段 我正在搜索值Type、coilid、view、delivery no、carg no和image 我通过web api调用字段:以下是主要函数: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
[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