首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

新手請問各位:數據庫為何不會更新?解决方案

2011-12-28 
新手請問各位:數據庫為何不會更新?請教各位好心人:我是一名初學者,去書店抱了一本visual basic 2005入門

新手請問各位:數據庫為何不會更新?
請教各位好心人:
  我是一名初學者,去書店抱了一本<visual basic 2005入門與提高>的書(清華大學出版社出版),我按他上面的源代碼做了數據連接並更新卻無法更新數據庫,從網上下載了這本書的源代碼學習程序也不能更新數據庫!!!----datagrid顯示已更新,但關閉程序重新再開則數據仍沒更新.
  此書源代碼如下:
Imports System
Imports System.Reflection
Imports System.Data.SqlClient
Imports System.Data
'數據連接(已測試通過)
Public Class Form1
  Dim ConnString As String = "Data Source=ken;Initial Catalog=pubs;Integrated Security=true"
  Dim SQLString As String = "SELECT * FROM authors"
  Dim SQLDbConn1 As New System.Data.SqlClient.SqlConnection(ConnString)
  Dim adapter1 As New SqlDataAdapter(SQLString, SQLDbConn1)
  Dim dataset1 As New System.Data.DataSet
  Dim CB_adapter1 As SqlCommandBuilder = New System.Data.SqlClient.SqlCommandBuilder(adapter1)
  Dim BindingSource1 As BindingSource
'以上數據連接部分連接正常

'刪除語句(buttn1第一個按鈕)
If (Me.BindingContext(dataset1, "authors").Count > 0) Then
  Me.BindingContext(dataset1, "authors").RemoveAt(Me.DataGridView1.CurrentRow.Index)

'更新語句(buttn2第二個按鈕)
Dim num As Integer
  '礿砦絞?腔?睡晤憮﹝
  Me.BindingContext(dataset1, "authors").EndCurrentEdit()
  '鳳?dataset笢載蜊腔囀?
  Dim chgobj As New DataTable
  chgobj = CType(dataset1.Tables("authors").GetChanges, DataTable)
  '?脤載蜊腔囀?祥峈諾ㄛ憩硒俴悵湔紱釬
  If Not chgobj Is Nothing Then
  '湖羲杅擂蟀諉
  If SQLDbConn1.State = 0 Then SQLDbConn1.Open()
  adapter1.ContinueUpdateOnError = True
  Try
  num = adapter1.Update(chgobj)
  dataset1.Merge(chgobj)
  'dataset1.AcceptChanges()
  adapter1.Update(chgobj)
  Catch eLoad As System.Exception
  System.Windows.Forms.MessageBox.Show(eLoad.Message)
  End Try
  dataset1.Tables("authors").Clear()
  adapter1.Fill(dataset1, "authors")
  '壽敕杅擂蟀諉
  SQLDbConn1.Close()
  End If

[解决办法]
'刪除語句(buttn1第一個按鈕)
If (Me.BindingContext(dataset1, "authors").Count > 0) Then
Me.BindingContext(dataset1, "authors").RemoveAt(Me.DataGridView1.CurrentRow.Index) 
========================
看到這裡,汗就一個字呀。
刪除應該是這樣的:
Using cmd As New SqlClient.SqlCommand
With cmd
.Connection = SQLDbConn1
.CommandType = CommandType.Text
.CommandText="delete authors where 數據庫中的字段名='你想刪的那條數據' " .ExecuteNonQuery()
End With
End Using

[解决办法]
其它的就在.CommandText這裡換個SQL語句就可以了。。樓主看看SQL的書。。有幫助。
[解决办法]
CommandText="添加你的SQL语句"
[解决办法]
CommandText="添加你的SQL语句"
[解决办法]
2楼是对得
[解决办法]
你看1楼上面的右侧,有"管理"按钮,你点管理,然后回出现给分的分数输入框,在里面写分数,最后输入你的登录口令进行给分。
[解决办法]
'dataset1.AcceptChanges() 


-----------------
你把它注释了它怎么更新...先好好看看DataSet怎么用...

很多书是不负责任...但这个例子却是对的...人家讲DataSet讲Binding的2-6楼拿SQL语句来不是也在误导楼主吗...
[解决办法]
結帖方法請參考:http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html

高分求數據庫的新增,修改,刪除,更新語句,
————————————————————
修改和更新一個意思,都是Update。

我把我的實例給你參考下,寫的不是很漂亮,但是可以用。

SQL code
--刪除DELETE FROM IOData_MostWHERE (HolderName = @Original_員工姓名) AND       (EMP_Number = @Original_員工工號) AND       (DepartmentNo = @Original_部門編號) AND       (IODate = @Original_出入日期) AND       (@IsNull_早班進入 = 1 AND Time1 IS NULL OR Time1 = @Original_早班進入) AND       (@IsNull_早班外出 = 1 AND Time2 IS NULL OR Time2 = @Original_早班外出) AND       (@IsNull_午班進入 = 1 AND Time3 IS NULL OR Time3 = @Original_午班進入) AND       (@IsNull_午班外出 = 1 AND Time4 IS NULL OR Time4 = @Original_午班外出) AND       (@IsNull_晚班進入 = 1 AND Time5 IS NULL OR Time5 = @Original_晚班進入) AND       (@IsNull_晚班外出 = 1 AND Time6 IS NULL OR Time6 = @Original_晚班外出)--插入INSERT INTO IOData_Most       (HolderName, EMP_Number, DepartmentNo, IODate, Time1, Time2, Time3,          Time4, Time5, Time6, Latetime, Leaveearly, Overtime)VALUES (@員工姓名,@員工工號,@部門編號,@出入日期,@早班進入,@早班外出,@午班進入,@午班外出,@晚班進入,@晚班外出,@遲到時間,@早退時間,@加班時間)--更新UPDATE IOData_MostSET  HolderName = @員工姓名, EMP_Number = @員工工號, DepartmentNo = @部門編號, IODate = @出入日期, Time1 = @早班進入, Time2 = @早班外出, Time3 = @午班進入, Time4 = @午班外出, Time5 = @晚班進入, Time6 = @晚班外出WHERE (HolderName = @Original_員工姓名) AND       (EMP_Number = @Original_員工工號) AND       (DepartmentNo = @Original_部門編號) AND       (IODate = @Original_出入日期) AND       (@IsNull_早班進入 = 1 AND Time1 IS NULL OR Time1 = @Original_早班進入) AND       (@IsNull_早班外出 = 1 AND Time2 IS NULL OR Time2 = @Original_早班外出) AND       (@IsNull_午班進入 = 1 AND Time3 IS NULL OR Time3 = @Original_午班進入) AND       (@IsNull_午班外出 = 1 AND Time4 IS NULL OR Time4 = @Original_午班外出) AND       (@IsNull_晚班進入 = 1 AND Time5 IS NULL OR Time5 = @Original_晚班進入) AND       (@IsNull_晚班外出 = 1 AND Time6 IS NULL OR Time6 = @Original_晚班外出)
[解决办法]
樓主好像弄錯了,你把帖子從20分加到了120分,這個並不是給分結帖。
帖子的相關操作請參考:http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
[解决办法]
我在11樓寫的都是VB2005操作SQL數據庫的語句。。。。。。
把上面的語句分別加在DeleteCommand.CommandText,InsertCommand.CommandText,UpdateCommand.CommandText裏面就可以了。
不才水平有限,再看不懂我也沒有辦法了。

热点排行