iT邦幫忙

0

datatable 欄位放值字串限制

  • 分享至 

  • xImage

如何規定datatable字串量不得超過40字,並放入時剩餘我需數量(40字)

目前是想用maxLength 搭配 String.Substring

但顯示發生錯誤

例:如果我的drNew1[129]值須放到dr[15]

以下為程式碼

感謝各位大神

foreach (DataRow dr in dtItem.Rows)    //宣告Datatable 裡面的 DataRow
{
						DataRow drNew1 = dtIN1.NewRow();
                        drNew1[4] = dr[9];
                        drNew1[6] = dr[10];
                        drNew1[129] = dr[15];                        
                        dtINV1.Rows.Add(drNew1);
}
菩薩慈悲:詳末學所答。感恩感恩 南無阿彌陀佛
如drNew1[129] 總共50個字,但我只想要放最多40個字至 dr[15]
是否需要先轉換成字串再去判斷長度呢?
alien663 iT邦研究生 3 級 ‧ 2023-04-07 17:02:13 檢舉
一定是我的中文造詣不好才看不懂你的問題是甚麼
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
孫守真任真甫
iT邦研究生 4 級 ‧ 2023-04-07 17:00:39

菩薩慈悲:「並放入時剩餘我需數量(40字)」什麼意思?
用 String.Substring 不就能解決了 String.Substring(0,39):
drNew1[129]值須放到dr[15]

drNew1[129] = dr[15].SubString(0,39)

drNew1[129] = (string)dr[15].Length<41? dr[15].Value: ((string)dr[15]).SubString(0,39)

但這樣要考慮容不容許40字串長後的被截斷爾。感恩感恩 南無阿彌陀佛

//先轉換成字串再去判斷長度呢(確定欄位中的資料型別是 string 的話,就不用 cast () 去轉換成string型別了) https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions
(string)dr[15].Length<41
((string)dr[15]).SubString(0,39)

已解決,感謝慈悲/images/emoticon/emoticon41.gif

1
JamesDoge
iT邦高手 1 級 ‧ 2023-04-10 09:06:57
foreach (DataRow dr in dtItem.Rows) //宣告Datatable 裡面的 DataRow
{
    DataRow drNew1 = dtIN1.NewRow();
    drNew1[4] = dr[9];
    drNew1[6] = dr[10];

    string inputString = dr[15].ToString();
    int maxLength = 40;

    if (inputString.Length > maxLength)
    {
        drNew1[129] = inputString.Substring(0, maxLength);
        dr[15] = inputString.Substring(maxLength);
    }
    else
    {
        drNew1[129] = inputString;
    }

    dtINV1.Rows.Add(drNew1);
}

已解決,感謝大大/images/emoticon/emoticon78.gif

我要發表回答

立即登入回答