2014-09-04 48 views
0

我有一個字段窗體有一個編輯器,我試圖更新我的數據庫。我可以填充表單數據並將其解碼以供顯示,但我無法將其更新。下面的代碼來自我的提交按鈕,我正在做兩件事情將內容編碼並保存到數據庫中。我沒有收到任何錯誤只是刷新頁面。我發現的語法看起來很正確。VB簡單的窗體使用SqlCommand更新數據庫

在下面的例子中,「CKEditorControl1」是我所見即所得的文本編輯器。它輸出我試圖編碼和保存的html。

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim section = Page.Request.Params("SectionName") 

    Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString) 

    conn.Open() 
    Dim command As New SqlCommand("UPDATE PageContent SET SectionBody = @SectionBody WHERE SectionName = @SectionName", conn) 

    command.Parameters.AddWithValue("@SectionName", section.ToString()) 
    command.Parameters.AddWithValue("@SectionBody", Server.HtmlEncode(CKEditorControl1.Text)) 

    command.ExecuteNonQuery() 

    conn.Close() 
End Sub 
+0

爲什麼使用'AddWithValue(「@ SectionBody」,Server.HtmlEncode(CKEditorControl1.Text))'還有'command.Parameters(「@ SectionBody」)。Value = Server.HtmlEncode(CKEditorControl1.Text)''。這並不是說這應該是一個問題,但其中一個是多餘的。你用過調試器嗎? – 2014-09-04 19:47:07

+0

如果你沒有收到錯誤,我假設'Where SectionName = @ SectionName'沒有得到正確的字符串,因此找不到要更新的行。運行'msgBox(section.ToString())'來查看。 – Cory 2014-09-04 20:37:37

+0

@Tim謝謝。我真的沒有看到每個人的差異,但不知道是否有人比其他人更喜歡更新。我更新了我的樣本。調試器不會給我提供很多線索,因爲頁面只是刷新。 – tree 2014-09-04 21:35:13

回答

0

所以我發現我的提交代碼從一開始就沒有錯。問題在於我如何在頁面加載時從開始填充編輯器控件。回發時更新頁面加載阻止了編輯器發生更新。對於文本框控件,回發沒有影響它。當我在文本框和編輯之間提交更新後的內容時,我發現回傳實際上是問題。在我的頁面加載一點if語句以防止回發內容覆蓋我的更新以填充表單和快照。