| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 366 人关注过本帖
标题:对象的使用范围问题
只看楼主 加入收藏
hzqh01
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2013-11-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
对象的使用范围问题
初学C#,遇到一个问题:

有两个按钮,在第一个按钮的代码中,包含了如下语句,秀于创建数据库的连接

private void button1_Click(object sender, EventArgs e)      

{

......      
            OleDbConnection myConn = new OleDbConnection();
            myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath;
            myConn.Open();

......

}

在第二按钮中,有如下语句,用于数据库的操作

private void button3_Click(object sender, EventArgs e)

{

......   

            OleDbCommand myCmd = myConn.CreateCommand();
             = strSQL;
            OleDbDataReader myDr = myCmd.ExecuteReader ();
            myDr.Read();

......

}

现在问题就出来了,如果按以上方式写,编译器会提示myConn不在上下文中,不能使用,同时编译也会出错。如果把两段代码合并到一个按钮中,程序没有问题。

通过以上,我可以知道是由于myConn这个对象实例的使用范围现在是private造成的,但不知道如何去解决这个问题。

搜索更多相关主题的帖子: private 数据库 
2013-11-05 10:36
shangsharon
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
威 望:7
帖 子:221
专家分:1261
注 册:2012-3-25
收藏
得分:20 
//把myConn从方法中提取出来,扩大使用范围
OleDbConnection myConn = new OleDbConnection();

private void button1_Click(object sender, EventArgs e)      

{

......      
            //此处的myConn只在这个方法内有效
            //OleDbConnection myConn = new OleDbConnection();
            myConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath;
            myConn.Open();

......

}

在第二按钮中,有如下语句,用于数据库的操作

private void button3_Click(object sender, EventArgs e)

{

......   

            OleDbCommand myCmd = myConn.CreateCommand();
             = strSQL;
            OleDbDataReader myDr = myCmd.ExecuteReader ();
            myDr.Read();

......

}
2013-11-05 16:00
快速回复:对象的使用范围问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021693 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved