标题:[求助]这个三层数据库应用程序哪里有错误
只看楼主
jlnet
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-7-29
 问题点数:0 回复次数:8 
[求助]这个三层数据库应用程序哪里有错误

我用WebService建业务层,用OleDbDataAdapter连接数据库

以下是WebService的代码
####################################################################
<WebMethod()> Public Function Get_Dataset() As DataSet1
Me.OleDbDataAdapter1.Fill(Me.DataSet11)
Return DataSet11
End Function

<WebMethod()> Public Sub Update_Dataset()
Me.DataSet11.AcceptChanges()
Me.OleDbDataAdapter1.Update(Me.DataSet11)
End Sub
####################################################################

我用Windows应用程序来做表示层,在窗体上添加了一个DataGrid控件,两个Button控件。

以下是表示层的代码
####################################################################
Dim Ds As New localhost.DataSet1
Dim ser1 As New localhost.Service1
Dim Nrow As DataRow

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Ds.Merge(ser1.Get_Dataset)
DataGrid1.DataSource = Ds
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Nrow = Me.Ds.person.NewRow
‘注person是数据表的名称,我是直接对DataSet进行操做的。
Nrow.Item("id") = 6
Nrow.Item("xm") = "大脸"
Nrow.Item("xb") = "男"
Nrow.Item("nl") = 23
Nrow.Item("bm") = 5
Me.Ds.person.Rows.Add(Nrow)

ser1.Update_Dataset()
End Sub
####################################################################

现在的问题是,我可以读取到数据,却无法更新数据。
在表示层的DataSet里的数据可以添加上,在DataGrid里可以看到新添加的那一条记录,但在业务层的数据库里并没有添加上这条记录,这是为什么。

搜索更多相关主题的帖子: 数据库 应用程序 
2006-11-28 09:05
lfycn
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-24
得分:0 

你更新的是dataset而不是数据库

2006-11-28 12:28
jlnet
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-7-29
得分:0 

难到不是那样吗?

<WebMethod()> Public Sub Update_Dataset()
Me.DataSet11.AcceptChanges()
Me.OleDbDataAdapter1.Update(Me.DataSet11)
End Sub

业务层的这段代码不能更新数据库吗?

如果不能那怎么改才对呢?

2006-11-28 14:13
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 
把Me.DataSet11.AcceptChanges()去掉

2006-11-28 16:06
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
有沒設主健

ser1.Update_Dataset()方法看下

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-11-28 16:09
jlnet
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-7-29
得分:0 
Me.DataSet11.AcceptChanges()是用来接收表示层传来的数据的。

2006-11-28 16:28
jlnet
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-7-29
得分:0 
高手来帮忙指点下
2006-11-29 09:22
无所谓
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-30
得分:0 

哈楼 各位朋友 我急需要图书馆里系统 请大家多帮忙 QQ253202698 油箱mxdjsj@163.com
VB做的

2006-11-30 13:18
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 

用commandbuilder时,数据库中必须有主建,
commandbuilder更新数据时,是在dataset变化的基础上更新的,DataSet必须跟踪数据的变化,如果没有,就不更新数据库
你首先要知道这么命令的工作机智,才可以用的得心应手了

[此贴子已经被作者于2006-12-1 8:12:47编辑过]


2006-12-01 08:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-105806-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048952 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved