iT邦幫忙

0

SUBSTRING函數的長度參數無效

  • 分享至 

  • twitterImage

請問一下
如出現如標題所示錯誤,該從哪裡去查詢並取得資料?
Software:Visual Studio 2012
SQL:SQL2005

sSQL.CommandText = "Select Employee_No,
CName, EName, Extention_No, EMail_Account, Login_Acc,";
sSQL.CommandText += "Upper(Left(Replace(EMail_Account, EName, ''), 1))
 + Substring(Replace(EMail_Account, EName, ''), 2,
Len(Replace(EMail_Account, EName, ''))) As 'LName', ";
sSQL.CommandText += "
 Upper(Substring(Login_Acc, 1, Charindex('-', Login_Acc) - 1))
s 'DepCode'";sSQL.CommandText += "  
From Employee";sSQL.CommandText += "    Where Employee_No = '"
+ Session["Employee_No"].ToString().Trim() + "'";
SqlDataAdapter DA = new SqlDataAdapter(sSQL.CommandText, Conn);
DA.Fill(sRs, "MailD");
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
summertw
iT邦好手 1 級 ‧ 2014-03-24 11:48:46
最佳解答

Substring(Replace(EMail_Account, EName, ''), 2, Len(Replace(EMail_Account, EName, '')))

你的問題看起來,好像是出在上面的那一段裡..
你的SubString,起點是在2的位置,結束確是一段LEN的函數,若這長度超過了你的原先指定的【Replace(EMail_Account, EName, '')】這個長度的話,那一定會出現錯誤..

summertw iT邦好手 1 級 ‧ 2014-03-24 11:50:01 檢舉

Try ..
Substring(Replace(EMail_Account, EName, ''), 2, Len(Replace(EMail_Account, EName, ''))-1)

ctipde iT邦高手 1 級 ‧ 2014-03-24 12:06:59 檢舉

感謝回覆

<pre class="c" name="code">sSQL.CommandText += "       Upper(Left(Replace(EMail_Account, EName, ''), 1)) + Substring(Replace(EMail_Account, EName, ''), 2, Len(Replace(EMail_Account, EName, ''))-1) As 'LName', ";

錯誤訊息
SqlException (0x80131904): 傳遞給 SUBSTRING 函數的長度參數無效。

ctipde iT邦高手 1 級 ‧ 2014-03-24 13:02:08 檢舉

有找出問題,帳號必需以XXX-XXXXXX的格式登入 如寄件者非此格式則會出現錯誤

我要發表回答

立即登入回答