none
又没有silverlight读写数据库的VB例子? RRS feed

  • 问题

  • 又没有用silverlight读写数据库、绑定方面的VB事例。到处都是用C#写的silverlight教程,就好像我们这些用VB的是不存在的。
    2009年7月17日 3:15

答案

  • 我有一个比较复杂的例子,需要了解吗?
      ---现在的东西应该越复杂越好。

    下面是都数据的过程:

    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
    '这里是增加条件 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
    完了,我们将自己的TdataTable 传给客户端就好了。
    唉,太麻烦了,要写一个自己的 datatable
    • 已标记为答案 sxin 2009年7月18日 2:58
    2009年7月18日 2:43

全部回复

  • 我有一个比较复杂的例子,需要了解吗?
      ---现在的东西应该越复杂越好。

    下面是都数据的过程:

    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
    '这里是增加条件 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
    完了,我们将自己的TdataTable 传给客户端就好了。
    唉,太麻烦了,要写一个自己的 datatable
    • 已标记为答案 sxin 2009年7月18日 2:58
    2009年7月18日 2:43
  • 用个C#转换vb工具!
    2009年7月18日 2:51
  • VB因该不等于“麻烦”吧,只是和C#的语法不同而已,不过参考一下复杂的也不错。不管怎么说我还是坚持用VB,毕竟平时不怎么用VS编程,还是用Office的时候多。Office里只能用VB。
    2009年7月18日 3:01
  • 用过C#转换vb工具,转过来的基本上没正确过,而且有时候很乱反而更看不懂,C#还凑或能看懂8成。
    2009年7月18日 3:03
  • 用过C#转换vb工具,转过来的基本上没正确过,而且有时候很乱反而更看不懂,C#还凑或能看懂8成。

    呵呵,应该做vb的程序看C#可以直接写出VB.Net的代码吧,国内好像C#更流行一点,台湾那边VB.NET更盛行,MSDN里面都是同时有C#跟VB.NET的源码范例的
    如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”
    2009年7月18日 3:45
    版主
  • 看多了,现在一般的C#可以看懂,但很不习惯。国内网上的Silverlight教程基本上都是C#,书基本没有,对于我们这些非专业VB程序员(编程主要是为了办公自动化和公司网页宣传)来说很耗费精力。盼望有一天微软或其它某个公司能将编程中的常有功能都封装成模块。VS里面有个“插入代码段”的功能就不错,但可执行的操作太少。而且插入以后还是代码,要是能变成选项,就像Access那样就好了。顺便说一下,个人感觉后台代码页太乱,微软应该革新一下。比如弄成像Word那样,在左侧加个大纲或树形目录之类的,可以一目了然,查找也方便。否则程序长了,上下滚动起来眼花缭乱。

    另外一直不明白微软干吗要搞出这么多种语言,听说还要出什么F#,搞不懂。这不是人为制造巴别塔事件么?
    2009年7月18日 4:43