2011-11-30 44 views
0

我有一些麻煩,如果代碼得到正確的語法。我使用VB將數據插入到數據庫中,並輸出數據作爲XML,這裏是代碼VB Web服務代碼的正確語法sql插入FOR XML AUTO,ELEMENTS?

<WebMethod()> _ 
Public Function addTrack(ByVal tTitle As String, ByVal tAlbum As String, ByVal tGenre As String) As String 
    Dim conn As New SqlConnection("Data Source=MARTIN-LAPTOP\SQLEXPRESS;Initial Catalog=mp3_playlists;Integrated Security=True") 
    Dim sql As String = "INSERT INTO Tracks (trackTitle, trackAlbum, trackGenre) VALUES ('" & tTitle & "', '" & tAlbum & "', '" & tGenre & "') FOR XML AUTO, ELEMENTS" 
    conn.Open() 
    Dim cmd As New SqlCommand(sql, conn) 
    Dim track As String = cmd.ExecuteScalar() 
    conn.Close() 
    Return track 
End Function 

的代碼是一個ASP.NET Web服務,當我點擊調用網頁出現錯誤上關鍵字'FOR'附近的語法不正確。如果我刪除FOR XML AUTO,ELEMENTS所有工作都可以找到,db更新但我不會將數據輸出爲XML。我認爲問題是插入值所需的括號爲 ,因爲如果SQL語句是沒有括號的SELECT語句,但我不能確定正確的語法,則不會發生此問題,謝謝您的幫助

+0

你想返回客戶端? 'Insert'是否返回一個值?通常它不會,除非你選擇@@ RowCount或類似的標量。 – Jeremy

回答

0

FOR XML AUTO僅用於SELECT語句。所以,問題不在於你的插入語句,而在於你的選擇語句。