2017-10-14 128 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