我有一個控制器
public ActionResult Index(int[] eo){ employes = _context.Database.SqlQuery(select * from table where tableId IN (@p0),String.Join(",", eo))}
問題是資料@p0作為字串傳遞,TableID 是 int。除錯顯示@p0為 ('10,2,3,5') 我想要的是 (10,2,3,5)。
我該如何處理這個問題?
uj5u.com熱心網友回復:
對于 SQL Server,您可以使用 JSON:
public ActionResult Index(int[] eo)
{
var sql = @"
select *
from table
where tableId IN (select value from openjson(@p0))
";
var json = "[" String.Join(",", eo) "]";
var employes = _context.Database.SqlQuery(sql,json).ToList();
}
uj5u.com熱心網友回復:
可能有更優雅的方法來解決這個問題,但您可以將字串拆分為一個字串串列,然后將每個字串決議為 int。
像這樣的東西:
string test = "10,2,3,5";
List<string> stringList = test.Split(",").ToList();
List<int> intList = new List<int>();
foreach(string str in stringList)
{
intList.Add(int.Parse(str));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/379318.html
