当前位置:编程学习 > C#/ASP.NET >>

修改了Access数据库,为什么程序中反映不出来

使用Access2003 vs.net2003开发

使用如下代码连接,对数据库进行查询

---连接代码------------------------------------------------------

    Dim strConnect As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\HOTEL_DB.mdb"
    Public oleDbConnection As OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(strConnect)
    Public oleCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand
-----------------------------------------------------------------

---查询代码------------------------------------------------------
       oleDbConnection.Open()

        oleCmd.CommandText = "...."
        oleCmd.CommandType = CommandType.Text
        oleCmd.Connection = oleDbConnection

        Dim dr As OleDb.OleDbDataReader = oleCmd.ExecuteReader(CommandBehavior.SingleResult)

        While dr.Read
            ....
        End While
        dr.Close()
        oleDbConnection.Close()
----------------------------------------------------------------

因为是帮非专业的同学做的东西,而且非常小,这样用起来方便快捷,学习成本小。可是我在表中加了一个字段PIC_ADDRESS後,再这样访问这个字段

dr.item("PIC_ADDRESS")  

运行,就会报错
---------------------------------------------------------------
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。

其他信息: PIC_ADDRESS
---------------------------------------------------------------

数据库里字段已经成功添加,但是dr.FieldCount反映出来的列数却还是以前的

我关程序,注销系统,都没有用,这是什么问题?
希望大家指教

--------------------编程问答-------------------- oleCmd.CommandText = "...."中的sql语句要有select * 或者 select PIC_ADDRESS,...
--------------------编程问答-------------------- 。。。这个是有的,我是select * 的,和下面dr.read循环里面一样,我省略了 --------------------编程问答-------------------- 难道需要重新编译么? --------------------编程问答-------------------- …… 改动了程序。不编译。计算机怎么会知道。
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,