佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 3477|回复: 2

MySQL :: invalid attempt to access a field before calling Read()

[复制链接]
发表于 25-9-2009 05:14 PM | 显示全部楼层 |阅读模式
Hi, 我是学生,现在做着一个assignment是关于电影院座位的记录的。我是用vb.net2008 和 mySql 5.1.36。
我其中一段code 是这样的,
  1.   Private Sub updateAll()

  2.         If Not conn Is Nothing Then conn.Close()

  3.         Dim _host As String = "localhost"
  4.         Dim _user As String = "root"
  5.         Dim _pass As String = ""
  6.         Dim _database As String = "cinema.vb"

  7.         conn = New MySqlConnection("Server= " + _host + ";User Id=" + _user + ";Password=" + _pass + ";database = " + _database)
  8.         conn2 = New MySqlConnection("Server= " + _host + ";User Id=" + _user + ";Password=" + _pass + ";database = " + _database)
  9.         ListView1.Columns.Clear()

  10.         With ListView1
  11.             .Items.Clear()
  12.             .FullRowSelect = True
  13.             .View = View.Details
  14.             .GridLines = True
  15.             .Sorting = Windows.Forms.SortOrder.Ascending
  16.             .Columns.Add("ID", 60, HorizontalAlignment.Left)
  17.             .Columns.Add("Title", 350, HorizontalAlignment.Left)
  18.             .Columns.Add("Price", 50, HorizontalAlignment.Left)
  19.             .Columns.Add("Genre", 200, HorizontalAlignment.Left)
  20.             .Columns.Add("Rate", 50, HorizontalAlignment.Left)
  21.             .Columns.Add("Length", 50, HorizontalAlignment.Left)
  22.             .Columns.Add("Show Time", 70, HorizontalAlignment.Left)
  23.             .Columns.Add("Show Date", 200, HorizontalAlignment.Left)
  24.             .Columns.Add("Hall no.", 50, HorizontalAlignment.Left)
  25.             .Columns.Add("No. Seat Available", 80, HorizontalAlignment.Left)
  26.         End With

  27.         Dim NewItem As ListViewItem

  28.         Dim movie_id As String
  29.         Dim movie_title As String
  30.         Dim movie_price As Integer
  31.         Dim movie_genre As String
  32.         Dim movie_rate As String
  33.         Dim movie_length As String
  34.         Dim movie_time As Integer
  35.         Dim movie_date As String
  36.         Dim movie_hall As Integer
  37.         Dim no_seat_available As Integer

  38.         Dim count As Integer

  39.         Dim result As MySqlDataReader
  40.         result = Nothing
  41.         Dim result2 As MySqlDataReader
  42.         result2 = Nothing

  43.         Dim cmd As New MySqlCommand
  44.         Dim cmd2 As New MySqlCommand

  45.         Try
  46.         Catch ex As Exception
  47.             MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  48.         End Try

  49.         With cmd
  50.             .CommandText = "SELECT * FROM movietable"
  51.             .Connection = conn
  52.         End With

  53.         conn.Open()
  54.         result = cmd.ExecuteReader


  55.         With ListView1
  56.             .Items.Clear()

  57.             Do While result.Read

  58.                 movie_id = result.GetString(result.GetOrdinal("id"))
  59.                 movie_title = result.GetString(result.GetOrdinal("title"))
  60.                 movie_price = result.GetString(result.GetOrdinal("price"))
  61.                 movie_genre = result.GetString(result.GetOrdinal("genre"))
  62.                 movie_rate = result.GetString(result.GetOrdinal("rate"))
  63.                 movie_length = result.GetInt32(result.GetOrdinal("movieLength"))
  64.                 movie_time = result.GetInt32(result.GetOrdinal("showTime"))
  65.                 movie_date = result.GetString(result.GetOrdinal("showDate"))
  66.                 movie_hall = result.GetInt32(result.GetOrdinal("hallNo"))

  67.                 With cmd2
  68.                     .CommandText = "SELECT COUNT(status) AS myCount FROM seatstatus WHERE status = '1' AND m_Id = @mId"
  69.                     .Connection = conn2
  70.                     .Parameters.Clear()
  71.                     .Parameters.AddWithValue("@mId", movie_id)
  72.                 End With

  73.                 conn2.Open()
  74.                 result2 = cmd2.ExecuteReader

  75.                 no_seat_available = result2.GetString(result2.GetOrdinal("myCount"))
  76.                 conn2.Close()

  77.                 NewItem = New ListViewItem(movie_id)
  78.                 NewItem.SubItems.Add(movie_title)
  79.                 NewItem.SubItems.Add(movie_price)
  80.                 NewItem.SubItems.Add(movie_genre)
  81.                 NewItem.SubItems.Add(movie_rate)
  82.                 NewItem.SubItems.Add(movie_length)
  83.                 NewItem.SubItems.Add(movie_time)
  84.                 NewItem.SubItems.Add(movie_date)
  85.                 NewItem.SubItems.Add(movie_hall)
  86.                 NewItem.SubItems.Add(no_seat_available)
  87.                 .Items.Add(NewItem)

  88.                 count = count + 1

  89.             Loop
  90.         End With

  91.         conn.Close()

  92.     End Sub
复制代码
当我run我的program 时,红色那句
                With cmd2
                    .CommandText = "SELECT COUNT(status) AS myCount FROM seatstatus WHERE status = '1' AND m_Id = @mId"
                    .Connection = conn2
                    .Parameters.Clear()
                    .Parameters.AddWithValue("@mId", movie_id)
                End With

                conn2.Open()
                result2 = cmd2.ExecuteReader

                no_seat_available = result2.GetString(result2.GetOrdinal("myCount"))
                conn2.Close()

出现了这个错误,
Invalid attempt to access a field before calling Read()
请问大家这是什么问题?我google过了,希望这里有人可以帮到我。
先谢谢大家。

[ 本帖最后由 cjjack88 于 25-9-2009 05:22 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 25-9-2009 05:29 PM | 显示全部楼层
这段code是从两个table 读 资料 出来,第一个是movie的资料, 第二个是哪个Movie的 seat available 的数量。第一个query没问题,就是读seat available时出现了这个问题。
回复

使用道具 举报

 楼主| 发表于 26-9-2009 11:40 AM | 显示全部楼层
找到答案了,哎。。。。
http://www.daniweb.com/forums/thread225667.html
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 9-12-2025 07:26 AM , Processed in 0.112031 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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