Я пытаюсь вернуть список из базы данных (Oracle 11G). Теперь, когда я запускаю его непосредственно из Sql Explorer, он возвращает данные. Теперь, имея его внутри REST API, вместо того, чтобы возвращать его, он просто возвращает []
в качестве результатов
Мой код выглядит примерно так:
public IEnumerable<VaultService> Get(string Branch_Desg)
{
OracleConnection con = new OracleConnection(constr);
con.Open();
DataTable dt = new DataTable();
//string sql = "select from wemadummyvaulttable where branch_desg = '" + Branch_Desg + "'";
string sql = "select BRANCH_ID ,BRANCH_NAME ,BRANCHID_NUMBER ,BRANCH_ACCOUNTNO ,BRANCH_DESG ,CURRENCY ,BRANCH_BALANCE from wemadummyvaulttable where branch_desg = '"+Branch_Desg+"' ";
OracleDataAdapter da = new OracleDataAdapter(sql, con);
List<VaultService> vr = new List<Models.VaultService>(dt.Rows.Count);
if (dt.Rows.Count > 0)
{
foreach (DataRow vaultrecord in dt.Rows)
{
vr.Add(new ReadVaultBal(vaultrecord));
}
}
return vr;
}
Я исправлю часть для Sql инъекций позже, мне просто нужно знать, что мне здесь не хватает и почему он возвращает пустой набор, а не Json результаты
Полный код выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WEMAVaultREST.Models;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
using System.Data;
namespace JBVaultREST.Controllers
{
public class VaultServiceController : ApiController
{
string constr = "User ID=*; Password=*; Data Source=SAM;";
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
// GET api/<controller>/5
/* public VaultService Get(string Branch_Desg)
{
OracleConnection con = new OracleConnection(constr);
con.Open();
DataTable dt = new DataTable();
string sql = "select * from wemadummyvaulttable where branch_desg = '"+Branch_Desg+"'";
OracleDataAdapter da = new OracleDataAdapter(sql,con);
da.Fill(dt);
if (dt.Rows.Count > 0)
{
return new ReadVaultBal(dt.Rows[0]);
}
throw new Exception("Account not found");
}*/
public IEnumerable<VaultService> Get(string Branch_Desg)
{
OracleConnection con = new OracleConnection(constr);
con.Open();
DataTable dt = new DataTable();
//string sql = "select from wemadummyvaulttable where branch_desg = '" + Branch_Desg + "'";
string sql = "select BRANCH_ID ,BRANCH_NAME ,BRANCHID_NUMBER ,BRANCH_ACCOUNTNO ,BRANCH_DESG ,CURRENCY ,BRANCH_BALANCE from wemadummyvaulttable where branch_desg = '"+Branch_Desg+"' ";
OracleDataAdapter da = new OracleDataAdapter(sql, con);
da.Fill(dt);
List<VaultService> vr = new List<Models.VaultService>(dt.Rows.Count);
if (dt.Rows.Count > 0)
{
foreach (DataRow vaultrecord in dt.Rows)
{
vr.Add(new ReadVaultBal(vaultrecord));
}
}
return vr;
}
// POST api/<controller>
public void Post([FromBody]string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
}
Класс выглядит так
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using WEMAVaultREST.Models;
namespace JBVaultREST.Models
{
public class VaultService
{
public string Branch_name { get; set; }
public string BranchID_Number { get; set; }
public string Branch_AccountNo { get; set; }
public string Branch_Desg { get; set; }
public string Currency { get; set; }
public decimal Branch_Balance { get; set; }
}
}
public class CreateTransaction : VaultService
{
}
public class ReadVaultBal : VaultService
{
public ReadVaultBal(DataRow row)
{
Branch_name = row["Branch_name"].ToString();
BranchID_Number = row["BranchID_Number"].ToString();
Branch_AccountNo = row["Branch_AccountNo"].ToString();
Branch_Desg = row["Branch_Desg"].ToString();
Currency = row["Currency"].ToString();
Branch_Balance = Convert.ToDecimal(row["Branch_Balance"]);
}
public string Branch_name { get; set; }
public string BranchID_Number { get; set; }
public string Branch_AccountNo { get; set; }
public string Branch_Desg { get; set; }
public string Currency { get; set; }
public decimal Branch_Balance { get; set; }
}