佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1137|回复: 18

請問有誰是C#高手

[复制链接]
发表于 9-6-2006 06:34 PM | 显示全部楼层 |阅读模式
我有一個關於連接database的問題

當我compile份program時﹐是沒有任何error的
但run的時候就出現
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll

我連接去database的code是﹕
OleDbConnection Conn=new OleDbConnection(ConnString);
Conn.Open();
OleDbDataReader dr;
OleDbCommand dbcom=new OleDbCommand();
DataSet ds=new DataSet();
OleDbDataAdapter da=new OleDbDataAdapter();
da.SelectCommand=new OleDbCommand(Sqlstring,Conn);
da.Fill(ds);
dbcom.Connection=(Conn);
dbcom.CommandText=Sqlstring;
dr=dbcom.ExecuteReader();

還說是 dbcom 是<undefined value>
有誰可以指教
謝謝
回复

使用道具 举报


ADVERTISEMENT

发表于 9-6-2006 11:29 PM | 显示全部楼层
难以鉴定出了什么问题... 你确定是第四行出错了? 可以把完整的 error message 放上来吗?
回复

使用道具 举报

 楼主| 发表于 10-6-2006 10:49 AM | 显示全部楼层
我不肯定是第四行。
但每當份program走到哪裡﹐那個error message就出來。
是不是我的sql問題。如果可以的話﹐幫我改改
謝謝你

這就是我寫的一個function:
public string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Application.StartupPath + "/../bookrecord.mdb;" + "Persist Security Info=False";
        
public void FillListBox( string Sqlstring )
        {
            ListBoxBookRecord.Items.Clear();
            
            
            // Declare Database Connection,Database Command, Dataset and Data Adapter
            // Initialize the Database, Dataset and Data Connection
                        OleDbConnection Conn=new OleDbConnection(ConnString);
                        Conn.Open();
                        OleDbDataReader dr;
                        OleDbCommand dbcom=new OleDbCommand();
                        DataSet ds=new DataSet();
                        OleDbDataAdapter da=new OleDbDataAdapter();
                        da.SelectCommand=new OleDbCommand(Sqlstring,Conn);
                        da.Fill(ds);
                        dbcom.Connection=(Conn);
                        dbcom.CommandText=Sqlstring;
                        dr=dbcom.ExecuteReader();

                        //Fill the list box with the Book ID
            while ( dr.Read() )
            {
                ListBoxBookRecord.Items.Add( dr[ "ID" ] );
               
                                object MyItem = ListViewBookRecord.Items.Add( ( ( System.Windows.Forms.ListViewItem )( dr[ "ID".ToString() ] ) ) );
               
                ListBoxBookRecord.Items.Add( dr[ "bookname".ToString() ] );
                ListBoxBookRecord.Items.Add( dr[ "authorname".ToString() ] );
                ListBoxBookRecord.Items.Add( dr[ "booktype".ToString() ] );
                ListBoxBookRecord.Items.Add( dr[ "price".ToString() ] );
                        }
            
            
            dr.Close();
            Conn.Close();
            Conn.Dispose();
            
            
            return;
        }

[ 本帖最后由 lieweffect 于 10-6-2006 10:53 AM 编辑 ]
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 10-6-2006 10:46 PM | 显示全部楼层
你用try{<你的代码>}catch(Exception e){MessageBox.Show(e.Message);}
然后把Error Message Post上来看看。

每次出问题我都是这样子debug的
回复

使用道具 举报

 楼主| 发表于 10-6-2006 10:58 PM | 显示全部楼层
出了Specified cast is not valid
然後program繼續run
然後database的資料只看到第一個﹐其他的看不到
要怎樣fix

[ 本帖最后由 lieweffect 于 10-6-2006 11:01 PM 编辑 ]
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 11-6-2006 03:00 PM | 显示全部楼层
/../bookrecord.mdb;

这个好像有问题~
你用absolute path试试??
回复

使用道具 举报

Follow Us
 楼主| 发表于 11-6-2006 05:44 PM | 显示全部楼层
對﹗我已經改了那個database path.
然後run第二次就出了Specified cast is not valid
還有哪裡出錯嗎﹖
謝謝
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 12-6-2006 04:25 PM | 显示全部楼层
我在测试的时候(改了你的source让它指向我的access)

  1. object MyItem = ListViewBookRecord.Items.Add(((System.Windows.Forms.ListViewItem)(dr[ "ID".ToString()])));
复制代码

出现InvalidCastException,它的解释是:
Unable to cast object of type 'System.Int32' to type 'System.Windows.Forms.ListViewItem'.

查了一下manual,发现Items.Add()里面要放string的,所以我把这行改了改,变成

  1. object MyItem = ListViewBookRecord.Items.Add((dr["ID"].ToString()));
复制代码

就正常了。我那个table里所有资料都正常显示

[ 本帖最后由 terrorgen 于 12-6-2006 04:30 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 12-6-2006 05:35 PM | 显示全部楼层
可以了
我以類似的寫法寫在list.cs裡的FillListBox那個void裡面
但它取把所有資料都list在ID理﹐要怎樣寫才能讓那些資料分類在list裡面
謝謝
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 12-6-2006 06:36 PM | 显示全部楼层
刚才我的harddisk突然挂了~
暂时不能帮你了~
抱歉~
回复

使用道具 举报

 楼主| 发表于 12-6-2006 06:43 PM | 显示全部楼层
原帖由 terrorgen 于 12-6-2006 06:36 PM 发表
刚才我的harddisk突然挂了~
暂时不能帮你了~
抱歉~

謝謝您
不知道好了可以幫我嗎﹖
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 12-6-2006 09:40 PM | 显示全部楼层
你不急吗?
好了自然可以帮你~
回复

使用道具 举报

 楼主| 发表于 12-6-2006 09:55 PM | 显示全部楼层
Thank You First
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 18-6-2006 05:28 PM | 显示全部楼层
harddisk 的问题解决了,不过……
原帖由 lieweffect 于 12-6-2006 05:35 PM 发表
可以了
我以類似的寫法寫在list.cs裡的FillListBox那個void裡面
但它取把所有資料都list在ID理﹐要怎樣寫才能讓那些資料分類在list裡面
謝謝


我不是很清楚你要的是什么
回复

使用道具 举报

 楼主| 发表于 18-6-2006 08:21 PM | 显示全部楼层
原帖由 terrorgen 于 18-6-2006 05:28 PM 发表
harddisk 的问题解决了,不过……


我不是很清楚你要的是什么

這個沒問題了﹐謝謝
我想知道在什麼情況下要使用到xml呢﹖
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 18-6-2006 09:15 PM | 显示全部楼层
当资料数量、层次不会很多,而且不用一直改的时候
我试过把一堆资料编进XML……痛苦~
不过你的这个程式~我想是可以啦~
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 18-6-2006 10:29 PM | 显示全部楼层
原帖由 terrorgen 于 18-6-2006 09:15 PM 发表
当资料数量、层次不会很多,而且不用一直改的时候
我试过把一堆资料编进XML……痛苦~
不过你的这个程式~我想是可以啦~

要怎樣呢﹖
可以拿部份的資料做還是一定要全部
例如只拿book name和price醬可以嗎

[ 本帖最后由 lieweffect 于 18-6-2006 10:33 PM 编辑 ]
回复

使用道具 举报

terrorgen 该用户已被删除
发表于 18-6-2006 11:42 PM | 显示全部楼层
那就看你的需要咯~~
回复

使用道具 举报

 楼主| 发表于 19-6-2006 11:30 AM | 显示全部楼层
原帖由 terrorgen 于 18-6-2006 11:42 PM 发表
那就看你的需要咯~~

原來如此....暫時沒問題﹐
如果有問題再找你幫忙﹐可以嗎﹖
萬分感激
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 7-8-2025 04:55 PM , Processed in 0.164289 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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