iT邦幫忙

0

能請問這段SQL可以怎麼寫呢?

  • 分享至 

  • xImage

我想請問一下假設有段SQL裡面是這樣

T2.ID IN (''123'',''456'')

ID想改成C#的參數傳入

我的來源是一個陣列

XXX[] data
data[0].ID = '123'
data[1].ID = '456'

看陣列裡面的值有多少

最終呈現的話可能會不只一個或兩個,可能會更多

那請問我該如何把值帶進去呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
Homura
iT邦高手 1 級 ‧ 2022-07-07 18:23:47
最佳解答

可以用for迴圈串

string sql = "Select * From table Where T2.ID IN (";
var parameters = new DynamicParameters();
            
for(int i=0;i<data.Length;i++)
{
    sql += $"@ID{i},";
    parameters.Add($"@ID{i}", data[i].ID);
}

// 刪掉最後逗號
sql = sql.SubString(0, sql.Lengths -1) + ")";

tenno081 iT邦研究生 4 級 ‧ 2022-07-07 20:47:45 檢舉

感謝,想請問DynamicParameters是dapper嗎?
我的專案裡沒有dapper不知道能不能用?

Homura iT邦高手 1 級 ‧ 2022-07-07 23:59:37 檢舉

tenno081
是的
只是要參數寫入
你改成其他也行@@

tenno081 iT邦研究生 4 級 ‧ 2022-07-08 20:36:33 檢舉

感謝,解決了~

我要發表回答

立即登入回答