积极答复者
又没有silverlight读写数据库的VB例子?

问题
答案
-
我有一个比较复杂的例子,需要了解吗?
---现在的东西应该越复杂越好。
下面是都数据的过程:Public Function ReadDataBy(Optional ByVal pWhere As String = "", Optional ByRef pReadCount As Long = 0, Optional ByVal pStarRow As Long = 0, Optional ByVal pMaxPagCount As Long = 0) As TDataTable Dim ExeSQl As String'这个是需要执行的SQl
完了,我们将自己的TdataTable 传给客户端就好了。
'这里是增加条件 If pWhere <> "" Then ExeSQl = TDBSQLExpress.AddWhere(_CurrSQL, pWhere) Else ExeSQl = _CurrSQL End If
'以下代码完成数据读取过程
Try
Dim MyDataTable As New TDataTable(TableScheme)'这个是根据 DataTable 自己写的一个简化版的 TdataTable,TableScheme为表结构描述
'下面是读取器
Dim MyDataReader As DbDataReader = DBFactory.GetDbDataReader(ExeSQl) MyDataTable.MainTableName = Name_ MyDataTable.Name_ = TableScheme.TableViewname
'陈旧的跳行方法 If pMaxPagCount > 0 Then Dim RowPos As Long = pStarRow For RowPos = 0 To pStarRow - 1 MyDataReader.Read() Next End If Do While MyDataReader.Read ' TdataRow 是简化的DataRow Dim NewRow As TDataRow = MyDataTable.DataRows.NewRow
'下面是定义一个对象数组,放一行数据 Dim MyValues(MyDataTable.TableScheme.TFields_.Count - 1) As Object '放入一行数据 MyDataReader.GetValues(MyValues)
'检测是否有空值 For I As Integer = 0 To MyValues.Count - 1 If IsDBNull(MyValues(I)) Then MyValues(I) = Nothing End If Next ' 将数据加载到结果行中 NewRow.Values.AddRange(MyValues) '将结果行装到返回值中 MyDataTable.DataRows.Rows.Add(NewRow) pReadCount += 1 '装载已读入的行 ' 检测数据行是否已足够 If pMaxPagCount > 0 Then If pMaxPagCount = pReadCount Then Exit Do End If End If Loop Return MyDataTable Catch ex As Exception Throw ex Finally DBFactory.CloseConnection() End Try End Function
唉,太麻烦了,要写一个自己的 datatable- 已标记为答案 sxin 2009年7月18日 2:58
全部回复
-
我有一个比较复杂的例子,需要了解吗?
---现在的东西应该越复杂越好。
下面是都数据的过程:Public Function ReadDataBy(Optional ByVal pWhere As String = "", Optional ByRef pReadCount As Long = 0, Optional ByVal pStarRow As Long = 0, Optional ByVal pMaxPagCount As Long = 0) As TDataTable Dim ExeSQl As String'这个是需要执行的SQl
完了,我们将自己的TdataTable 传给客户端就好了。
'这里是增加条件 If pWhere <> "" Then ExeSQl = TDBSQLExpress.AddWhere(_CurrSQL, pWhere) Else ExeSQl = _CurrSQL End If
'以下代码完成数据读取过程
Try
Dim MyDataTable As New TDataTable(TableScheme)'这个是根据 DataTable 自己写的一个简化版的 TdataTable,TableScheme为表结构描述
'下面是读取器
Dim MyDataReader As DbDataReader = DBFactory.GetDbDataReader(ExeSQl) MyDataTable.MainTableName = Name_ MyDataTable.Name_ = TableScheme.TableViewname
'陈旧的跳行方法 If pMaxPagCount > 0 Then Dim RowPos As Long = pStarRow For RowPos = 0 To pStarRow - 1 MyDataReader.Read() Next End If Do While MyDataReader.Read ' TdataRow 是简化的DataRow Dim NewRow As TDataRow = MyDataTable.DataRows.NewRow
'下面是定义一个对象数组,放一行数据 Dim MyValues(MyDataTable.TableScheme.TFields_.Count - 1) As Object '放入一行数据 MyDataReader.GetValues(MyValues)
'检测是否有空值 For I As Integer = 0 To MyValues.Count - 1 If IsDBNull(MyValues(I)) Then MyValues(I) = Nothing End If Next ' 将数据加载到结果行中 NewRow.Values.AddRange(MyValues) '将结果行装到返回值中 MyDataTable.DataRows.Rows.Add(NewRow) pReadCount += 1 '装载已读入的行 ' 检测数据行是否已足够 If pMaxPagCount > 0 Then If pMaxPagCount = pReadCount Then Exit Do End If End If Loop Return MyDataTable Catch ex As Exception Throw ex Finally DBFactory.CloseConnection() End Try End Function
唉,太麻烦了,要写一个自己的 datatable- 已标记为答案 sxin 2009年7月18日 2:58
-
看多了,现在一般的C#可以看懂,但很不习惯。国内网上的Silverlight教程基本上都是C#,书基本没有,对于我们这些非专业VB程序员(编程主要是为了办公自动化和公司网页宣传)来说很耗费精力。盼望有一天微软或其它某个公司能将编程中的常有功能都封装成模块。VS里面有个“插入代码段”的功能就不错,但可执行的操作太少。而且插入以后还是代码,要是能变成选项,就像Access那样就好了。顺便说一下,个人感觉后台代码页太乱,微软应该革新一下。比如弄成像Word那样,在左侧加个大纲或树形目录之类的,可以一目了然,查找也方便。否则程序长了,上下滚动起来眼花缭乱。
另外一直不明白微软干吗要搞出这么多种语言,听说还要出什么F#,搞不懂。这不是人为制造巴别塔事件么?