佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1277|回复: 3

那里出错了?

[复制链接]
kengkit 该用户已被删除
发表于 24-10-2005 06:26 PM | 显示全部楼层 |阅读模式
我有两个records 是符合下面红色highlight了的sql statement,但after query不知为何出现的是两个同样的record,而不是两个不同的record!!

另外我该如何得到record count 呢? 在下面我用蓝色highlight了!!

以下是我的coding

    Dim cn As OleDbConnection
    Dim cmd As OleDbCommand
    Dim dr As OleDbDataReader

    Public Function search_customer()

        Dim i As Integer = "0"
        Dim search_str As String

search_str = "SELECT CUSID, name FROM customer_profile WHERE type = '" + txt_keyword.Text + "'"

        Try
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\database.mdb;Persist Security Info=False;")

            cn.Open()

            cmd = New OleDbCommand(search_str, cn)

            dr = cmd.ExecuteReader

            ListView1.Items.Clear()

            While dr.Read

                ListView1.BeginUpdate()

                For i = 0 To 1 (recordcount)

                    ListView1.Items.Add(dr(0))
                    ListView1.Items(i).SubItems.Add(dr(1))

                Next

                ListView1.EndUpdate()

            End While

        Catch

        End Try

        dr.Close()
        cn.Close()

    End Function
回复

使用道具 举报


ADVERTISEMENT

发表于 25-10-2005 08:59 AM | 显示全部楼层
应该需要类似的coding

dr.FetchFirst
For i = 0 To 1 (recordcount)
    ListView1.Items.Add(dr(0))
    ListView1.Items(i).SubItems.Add(dr(1))
  dr.FetchNext
Next
回复

使用道具 举报

发表于 25-10-2005 09:31 AM | 显示全部楼层
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader

Public Function search_customer()
   Dim i As Integer = 0
   Dim search_str As String

   search_str = "SELECT CUSID, name FROM customer_profile WHERE type = '" + txt_keyword.Text + "'"

        Try
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\database.mdb;Persist Security Info=False;")

            cn.Open()
            cmd = New OleDbCommand(search_str, cn)
            cmd.CommandType = CommandType.Text
            dr = cmd.ExecuteReader
            ListView1.Items.Clear()

            While dr.Read()
                ListView1.BeginUpdate()
                'no need For i = 0 To 1 (recordcount)
                ListView1.Items.Add(dr(0))
                ListView1.Items(i).SubItems.Add(dr(1))
                ListView1.EndUpdate()
            End While
        Catch
        End Try
        dr.Close()
        cn.Close()
    End Function


after query不知为何出现的是两个同样的record,而不是两个不同的record!!

你compare all field value 了啦?
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 25-10-2005 07:41 PM | 显示全部楼层
我改了以下的写法,结果只是display出一个资料,但当我 query how many rows in dataset时,答案显示是有两个的row的!但为何只出一个呢?

        Dim ds As New DataSet
        Dim dt As DataTable
        Dim dr As DataRow

        ds = log.GetCustomer(txt_keyword.Text)

        ListView1.Items.Clear()
        ListView1.BeginUpdate()

        For Each dt In ds.Tables

            For Each dr In dt.Rows

                ListView1.Items.Add(dr("CUSID"))
                ListView1.Items(0).SubItems.Add(dr("name"))
                ListView1.Items(0).SubItems.Add(dr("address"))

            Next

        Next

        ListView1.EndUpdate()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 5-3-2025 02:08 AM , Processed in 0.106393 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表