2015-04-03 69 views
-1

我的更新文本框被命名爲:updateref 和我的數據字段我想與所選列更新是REFID與MySQL更新的DataGridView

我很抱歉,我是一個小白和所有剛開始使用VB集成MySQL的。淨,任何幫助將不勝感激!謝謝!

「MySQL代碼

Dim con As MySqlConnection = New MySqlConnection("my info") 
    Dim reader As MySqlDataReader 

    Try 
     con.Open() 
     Dim query As String 
     Dim command As MySqlCommand 
     query = "UPDATE exploitsociety SET reffer='" + updateref.Text + "' WHERE reffer='" + DataGridView1.CurrentCell.Selected + "';" 
     command = New MySqlCommand(query, con) 
     reader = command.ExecuteReader 

     Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     con.Dispose() 
     End try 
     con.Close() 

Basially我是想在dataviewgrid只是編輯列數據,然後只需點擊更新,但它是複雜的,所以我增加了一個文本框,看看我是否可以這樣做而我也不能。

+0

你能告訴什麼是你所面臨的異常或更新任何問題。 – 2015-04-03 04:24:23

+0

是的,它只是簡單地拋出和SQL錯誤,這個代碼我認爲它所做的是任何你選擇的盒子在文本框中更新mysql數據庫中的那個盒子。我是否正確,那是我打算做的。 – Jake 2015-04-03 04:30:18

+0

可以在這裏提供錯誤詳情 – 2015-04-03 04:32:15

回答

0

看來你嘗試更新查詢

Dim con As MySqlConnection = New MySqlConnection("my info") 
Dim reader As MySqlDataReader 

Try 
    con.Open() 
    Dim query As String 


    Dim command As MySqlCommand 
     query = "UPDATE exploitsociety SET reffer='" + updateref.Text + "' WHERE reffer='" + DataGridView1.CurrentCell.Selected + "';" 
     command = New MySqlCommand(query, con) 
    //  reader = command.ExecuteReader 

    //  you need to run ExecuteNonQuery instead of ExecuteReader 
     int UpdatedRows= command.ExecuteNonQuery(); 

     Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     con.Dispose() 
     End try 
    con.Close() 

只爲您的信息N

的ExecuteReader

執行閱讀器將用於返回的行集,SQL查詢的執行或使用命令對象的存儲過程。這一個是向前的記錄僅檢索和它被用來讀取第一個表中的值將持續。(閱讀更多有關的ExecuteReader)

的ExecuteNonQuery

ExecuteNonQuery方法將返回INSERT影響的行數, DELETE或UPDATE操作。此ExecuteNonQuery方法將僅用於插入,更新和刪除,創建和SET語句。 (Read More about ExecuteNonQuery

+0

更新程序在哪裏起作用? – Jake 2015-04-03 04:28:55

+0

'UpdatedRows'沒什麼,只是返回更新的行數。所以你可以確保你的表格行更新。 – 2015-04-03 04:30:47

+0

我會用什麼來更新?對不起 – Jake 2015-04-03 04:34:26

0

試試這個,看看它拋出的異常類型(如果有的話):

Using cn = New MySQLConnection("my info") 
    cn.Open() 
    Using cmd = New MySQLCommand("UPDATE exploitsociety SET reffer='" + updateref.Text + "' WHERE reffer='" + DataGridView1.CurrentCell.Selected + "'", cn) 
     cmd.ExecuteNonQuery() 
    End Using 
End Using 
+0

這也扔雙箭頭 – Jake 2015-04-03 04:43:02

+0

必須是你的查詢,然後。 – 2015-04-03 12:37:09

0

然後嘗試進行更新下面的查詢,刪除單引號。

query = "UPDATE exploitsociety SET refid=" + updateref.Text + " WHERE refid=" + DataGridView1.CurrentCell.Selected 
command = New MySqlCommand(query, con) 
command.ExecuteNonQuery() 

你可以得到選中的單元格的值也如下

DataGridView1.SelectedCells[<index of column>].Value.ToString(); 
+0

這跑了相同的錯誤 – Jake 2015-04-03 04:41:30

+0

同樣的錯誤:http:// prntscr。com/6ow1q2 – Jake 2015-04-03 04:50:42

+0

@Jake,請告訴我引用者列的DataType,以及你在updateref中輸入的值是什麼文本框 – 2015-04-03 05:03:44