2017-10-19 221 views
0

我正在嘗試構建一個包含換行符的字符串,並且正在獲取最奇怪的結果。這個字符串將被存儲在SQL數據庫中,以便以後用作電子郵件的一部分。我的代碼如下:vb.net字符串concat將vbCrlf文字添加到字符串

Dim strBody As String = "Andy," & Environment.NewLine 

當我在調試會話期間檢查的strBody的價值,它是這樣的:

"Andy," & vbCrlf 

我當然希望是更喜歡:

"Andy," 

已知,後面是隱藏字符。

歸根結底,問題是什麼?當我包括strBody我的SQL語句insert的一部分,它的字面數值顯示爲我的SQL內以下insert聲明:

'Andy," & vbCrLf & "' 

我使用此代碼昨天它運行良好。我在同一個asp.net項目的另一個函數內使用類似的代碼,它工作正常。我曾嘗試使用+而不是&,我試過用vbCrLf代替Environment.NewLine,我試過用stringbuilder,我試過用string.concat。所有結果與& vbCrLf包含在strBody中的結果相同。

有沒有我意外改變的設置?

我知道這是一個奇怪的...任何幫助,非常感謝。

+1

這實際上是不可能的!如果這是真的,那麼你已經打破了宇宙! - 你確定它是真的** _部分字符串嗎?您是否嘗試將其寫入文件或在消息框中顯示它?請記住,當您在_ **調試模式下檢查變量時顯示的內容** _與最終字符串不一樣。 –

+1

你能給我們一個顯示問題的截圖嗎? –

回答

0

這僅僅是Visual Studio中顯示你有新行字符( vbCrLf或Environment.NewLine)。如果您在任何地方使用該字符串,它將被正確存儲。

+0

謝謝。經過一番調查後,我能夠確認Visual Studio顯示的字符串就像我上面提到的那樣,以便隱藏的字符可見。當它實際存儲在SQL數據庫中時,它是正確的。我的問題是我的字符串中有一個意外的單引號,導致SQL命令失敗。當我開始調查時,我專注於VbCrlf,因爲它看起來不對;我正確刪除了存儲在數據庫中的單引號和sting。 – Andy

0

如果你只需要在數據庫中插入Environment.NewLine,你可以這樣做。

Dim a As String = """ & Environment.NewLine & """ 
Dim strBody As String = String.Format("Andy,{0}", a) 

'"Andy," & Environment.NewLine & ""