嗨大家好,我正在編寫一些使用SQL Server CE 3.5的代碼,並且我遇到了一個非常奇怪的問題。我在其中一個表中需要存儲完整文件路徑的字符串字段。SQL Server CE 3.5早期切斷字符串(C#)
在試圖解決這個問題,我有一個字段設置爲nvarchar
與4000最大規模的過程中,但它仍然是切長字符串超過該限制,更短的關閉
例如:
D:\iTunes\iTunes Media\Music\Abigail Williams\In The Absence Of Light\02 Final Destiny Of The Gods.m
這明顯小於4000個字符,但它在字符串末尾缺少p3
。
我使用的是表適配器的數據輸入到與下面的查詢數據庫:
INSERT INTO [Track] ([Artist_ID], [Album_ID], [FilePath], [LastUpdate])
VALUES (@Art, @Al, @Fp, @LU)
我知道,因爲我使用下面的代碼來檢查字符串完全形成於插入:
if(!temp.Filepath.EndsWith(".mp3"))
MessageBox.Show("File Error");
this.trackTableAdapter1.InsertQuery(ArtID, AlID, temp.Filepath, File.GetLastWriteTime(temp.Filepath));
消息框未顯示,所以字符串必須在插入時正確結束。
提取數據的查詢是:
SELECT
*
FROM Track
WHERE [email protected]_ID AND [email protected]_ID
其中涉及的代碼是:
foreach (Database.MusicDBDataSet.TrackRow TR in this.trackTableAdapter1.GetAlbumTracks(AR.Artist_ID, AlR.Album_ID).Rows)
{
//if (!TR.FilePath.EndsWith(".mp3"))
//MessageBox.Show("File Path Error");
this.ArtistList[AR.Name].AlbumList[this.ArtistList[AR.Name].AlbumList.Count - 1].TrackList.Add(new Track(TR.FilePath, AlR.Name, AR.Name));
}
有沒有人以前碰到這個問題?
你能否提供存儲/讀取表的代碼? – IAmTimCorey 2011-05-14 23:39:54
它總是2個字符?你可以發佈你使用的插入/選擇代碼嗎? – 2011-05-14 23:43:14
發佈了,不,有時它會得到「.mp」,有時會使它穿過整個字符串,有時它甚至不會使它成爲「。「增加和減小最大字段大小似乎完全沒有影響 – pquest 2011-05-14 23:50:59