2017-10-14 130 views
-1

我有一個DataGridView在我的winform,我的連接字符串是cmd.ExecuteNonQuery不斷增加

dim con as new sqlconnection("Data source=" & My.Settings.sqlserver & ", " & My.Settings.sqlport & ";Network Library=DBMSSOCN;initial catalog=" & My.Settings.dbname & ";User id=" & My.Settings.Username & ";Password=" & My.Settings.Password & ";") 

我有一個按鈕,在SQL數據庫中插入數據。代碼是

dim cmd as new sqlcommand("insert into db(Firstname) values(@fname)") 
con.opn 
cmd.parametres.add("@fname",sqldbtype.varchar).value=txt.text 
cmd.executenonquery 
con.close 
end sub 

此代碼工作正常,但DataGridView不更新/刷新本身,除非我重新啓動應用程序。所以我加入這個代碼

Private sub btn_click 
    dim cmd as new sqlcommand("insert into db(Firstname) 
    values(@fname)") con.opn 
    `cmd.parametres.add("@fname",sqldbtype.varchar).value=txt.text 
    if cmd.executenonquery() =1 then 
    dim cmd as new sqlcommand("Select *from contacts") 
    dim adapter as new sqldataadapter 
    dim table as datatable 
    apater.fill(table) 
    dgvw.datasource=table 
    con.close 
end sub 

`

此代碼對form_load.This還添加代碼刷新/更新DGVW但問題是,在我的文本框想,我輸入「ABCDE」,那麼它在SQL數據庫,其看起來像

插入多數據「a」(它將第一數據到數據庫表) 「AB」 「ABC」 等等! 我在做什麼錯?我應該如何解決這個問題?還有最後一件事,如果我刪除了cmd.executenonquery if語句中的adaper.fil和其他代碼,它只會向表中添加一個數據!請幫忙!

screensht:[鏈接1] https://drive.google.com/open?id=0B9Q3-Og5WXqYOWFMaGRBT2tGRVk

[鏈接2] https://drive.google.com/open?id=0B9Q3-Og5WXqYbEV2YUVSdW1kWkU

+1

它聽起來像你將數據添加到在TextBox的TextChanged事件處理程序的數據庫。對於在TextBox中鍵入的每個字符,都會觸發TextChanged。 – Blackwood

+0

請閱讀[問]並參加[導覽]。我不知道如何代碼將添加一個字符串的多個部分,但我可以看到如何添加多個名稱。 – Plutonix

+0

等等... Letme給出屏幕截圖 –

回答

-1

定了! 問題是這樣的: 公用Sub ClearTextBox(BYVAL根作爲對照) 對於每個CTRL作爲對照在root.Controls ClearTextBox(CTRL) 如果TypeOf運算CTRL爲文本框然後 CTYPE(CTRL,文本框)。文本=字符串。空 結束如果 一個CTRL 末次

刪除,並WALLAHHHHHHHHHHHHH

+2

你是說你通過刪除你沒有包括在你的問題中的代碼來解決問題?如果是這樣,這個問題和答案不會幫助任何人,你應該刪除它們。 – Blackwood