| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 859 人关注过本帖
标题:[求助]VB.Net数据存储模块出错!
取消只看楼主 加入收藏
mkb21
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-22
收藏
 问题点数:0 回复次数:2 
[求助]VB.Net数据存储模块出错!

Public Sub DataSave(ByVal TabName As String, ByVal ValueTxt() As String, ByVal Oper As Boolean)
If Oper Then 'Oper=true,修改记录;Oper=False,增加记录
CmdText = "Select * From " & TabName & " Where id=" & myId
Else
CmdText = "Select * From " & TabName
End If

Dim SQLCmd As New SqlClient.SqlCommand(CmdText, Conn) '数据库连接字符串
Dim SQLBd As New SqlCommandBuilder(SQLAdp)
Dim FieldNum As Integer '字段项数定义

Try
Conn.Open()
DataRd = SQLCmd.ExecuteReader(CommandBehavior.CloseConnection)
FieldNum = DataRd.FieldCount() '取得字段数
DataRd.Close()
Conn.Close()

Dim DTRow As DataRow = DataSet.Tables(TabName).NewRow '给缓存表增加新行
For i = 0 To FieldNum - 1
If Oper Then
DataSet.Tables(TabName).Rows(myId - 1).Item(i) = ValueTxt(i) '给缓存表指定行更新内容
Else
DTRow.Item(i) = ValueTxt(i) '给缓存表新行增加新内容
End If
Next

If Oper Then
myMsgWord = "更新"
Else
DataSet.Tables(TabName).Rows.Add(DTRow) '给TabName表增加一行新记录
myMsgWord = "增加"
End If

SQLBd.DataAdapter.Update(DataSet, TabName) '添加完毕后更新数据库
If Err.Number = 0 Then MsgBox("数据已" & myMsgWord & "!", 64, "提示!")
Catch ex As Exception
MessageBox.Show(ex.ToString, "提示!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
End Try
End Sub
程序编写初期试验通过,可当做到第二个窗体时,总是出错。提示:对于多个基表不支持SQL生成...
怎么办,请高手指点,谢谢!

搜索更多相关主题的帖子: 模块 Net 数据存储 
2007-09-25 12:51
mkb21
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-22
收藏
得分:0 

我将两个功能拆开来做,下面是新增记录用的,其中TabName是的表名,与缓存中的一样,ValueTxT()是需要存储的字段变量数数组,
Public Sub DataSave(ByVal CmdText as String,ByVal TabName As String, ByVal ValueTxt() As String)
CmdText = "Select * From " & TabName
Dim SQLCmd As New SqlClient.SqlCommand(CmdText, Conn)
Dim SQLBd As New SqlCommandBuilder(SQLAdp)
Dim FieldNum As Integer'字段项数定义
Try
Conn.Open()
DataRd = SQLCmd.ExecuteReader(CommandBehavior.CloseConnection)
FieldNum = DataRd.FieldCount() '取得字段数
DataRd.Close()
Conn.Close()

Dim DTRow As DataRow = DataSet.Tables(TabName).NewRow '增加新行
For i = 0 To FieldNum - 1
DTRow.Item(i) = ValueTxt(i) '给缓存表新行增加新内容
Next

DataSet.Tables(TabName).Rows.Add(DTRow) '给TabName表增加一行新记录
SQLBd.DataAdapter.Update(DataSet, TabName) '添加完毕后更新数据库
If Err.Number = 0 Then MsgBox("数据已增加!", 64, "提示!")
Catch ex As Exception
MessageBox.Show(ex.ToString, "提示!", 0, 16, 0, 131072))
End Try
End Sub
可还是出错,真不明白是怎么回事,请高手给予指出,谢谢!


\\\\// ~\'~ ^
2007-09-25 14:51
mkb21
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-22
收藏
得分:0 

可以用,我在XP,VS.Net2003上通过。用的是MSSQL数据库。

[此贴子已经被作者于2007-9-26 10:31:07编辑过]


\\\\// ~\'~ ^
2007-09-26 10:30
快速回复:[求助]VB.Net数据存储模块出错!
数据加载中...
 
   



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

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