| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 697 人关注过本帖
标题:关于作用域的问题
只看楼主 加入收藏
菜鸟先行
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2006-1-18
收藏
 问题点数:0 回复次数:8 
关于作用域的问题

我想把读取数据库的代码单独写在一个cs文件中,代码如下:
。。。。
name space localhost.common_cs
{
public class database
{
public static void database_reader(string str)//datareader方式
{
string strConn=ConfigurationSettings,AppSettings["sqlconn"];
SqlConnection myConnection=new SqlConnection(strConn);
myConnection,Open();
SqlCommand myCommand=new SqlCommand(str,myConnection);
SqlDataReader myReader=myCommand,executeReader();
}
public static void database_dataset(string str,string tab)//dataset方式
{
string strConn=ConfigurationSettings.AppSettings["sqlconn"];
SqlConnection myConnection=new SqlConnection(strConn);
SqlDataAdapter myDataAdapter=new SqlDataAdapter(str,myConnection);
DataSet myds=new DataSet();
myDataAdapter.Fill(myds,""+tab+"");
}
}
}
然后在后面调用这些函数,现在有个问题请教各位前辈,比如在datagrid里使用dataset时,会用到myds,这样就会报错,说myds不在类中,这个该怎么解决呢??我怎么能让myds被其他类识别呢??谢谢

搜索更多相关主题的帖子: database public 数据库 
2006-11-02 15:28
永不回头
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-9-27
收藏
得分:0 

不是作用域的问题,你写的方法并没有返回一个DataSet对象拉.
name space localhost.common_cs
{
public class database
{
public DataSet getDs(SqlConnection conn,.................. )
{
...............................................
//返回一个dataset对象
}
}
然后你可以在其它地方调用!
建议你下载看看petshop这个微软自带的3层结构实例,你就会写拉.................

[此贴子已经被作者于2006-11-2 16:05:19编辑过]


人生就是一个字:惨,惨,惨!
2006-11-02 15:40
菜鸟先行
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2006-1-18
收藏
得分:0 
以下是引用永不回头在2006-11-2 15:40:38的发言:

不是作用域的问题,你写的方法并没有返回一个DataSet对象拉.
name space localhost.common_cs
{
public class database
{
public DataSet ds(SqlConnection conn,.................. )
{
...............................................
//返回一个dataset对象
}
}
然后你可以在其它地方调用!
建议你下载看看petshop这个微软自带的3层结构实例,你就会写拉.................


不是很明白,我是菜鸟,您能写的具体点吗??谢谢


笨鸟先飞,菜鸟先行
2006-11-02 16:05
小天狼星
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:483
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用菜鸟先行在2006-11-2 15:28:01的发言:
name space localhost.common_cs
{
public class database
{
public static void database_reader(string str)//datareader方式
{
string strConn=ConfigurationSettings,AppSettings["sqlconn"];
SqlConnection myConnection=new SqlConnection(strConn);
myConnection,Open();
SqlCommand myCommand=new SqlCommand(str,myConnection);
SqlDataReader myReader=myCommand,executeReader();
}
public static void database_dataset(string str,string tab)//dataset方式
{
string strConn=ConfigurationSettings.AppSettings["sqlconn"];
SqlConnection myConnection=new SqlConnection(strConn);
SqlDataAdapter myDataAdapter=new SqlDataAdapter(str,myConnection);
DataSet myds=new DataSet();
myDataAdapter.Fill(myds,""+tab+"");
}
}
}

楼主怎么这么写?
首先说database_reader,我想请问楼主,你关闭数据库了吗?
SqlConnection myConnection=new SqlConnection(strConn);
myConnection,Open();
这些东西你都写了,你怎么关闭数据库链接?如果不关,当链接达到数据库最大链接数量之后,你就将无法再打开数据库,这样的结果是,除非你重启IIS,否则这些链接将永远不会关闭,你也别想再链接数据库。如果你在这个方法中关闭了数据库,那么你的myReader也就同时失去了意义,因为myReader就等于是数据库的读取指针,数据库都关了,指针也就不到东西了。
其次,这两个方法为什么要定义成static void?没有任何的返回值,你就是绑定了数据,那你绑定的东西也是用不了的,因为存储数据的那块内存你没有起“名字”


[face=仿宋_GB2312]一生那么长,长不过时间定义下的永远;一生那么短,短不过人海中一次又一次匆忙的擦肩。[/face]
2006-11-02 16:06
菜鸟先行
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2006-1-18
收藏
得分:0 
以下是引用小天狼星在2006-11-2 16:06:07的发言:

楼主怎么这么写?
首先说database_reader,我想请问楼主,你关闭数据库了吗?
SqlConnection myConnection=new SqlConnection(strConn);
myConnection,Open();
这些东西你都写了,你怎么关闭数据库链接?如果不关,当链接达到数据库最大链接数量之后,你就将无法再打开数据库,这样的结果是,除非你重启IIS,否则这些链接将永远不会关闭,你也别想再链接数据库。如果你在这个方法中关闭了数据库,那么你的myReader也就同时失去了意义,因为myReader就等于是数据库的读取指针,数据库都关了,指针也就不到东西了。
其次,这两个方法为什么要定义成static void?没有任何的返回值,你就是绑定了数据,那你绑定的东西也是用不了的,因为存储数据的那块内存你没有起“名字”

我就是想问问如果有办法在这个类以外识别类以内的变量,我就在外面关闭数据库,呵呵,看来不成
我本想直接带入参数,在这个函数内把数据绑定到dataset或datareader中,然后就是和第一个问题一样的问题了
呵呵,偶许多问题还没搞明白呢,呵呵


笨鸟先飞,菜鸟先行
2006-11-02 16:12
小天狼星
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:483
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用菜鸟先行在2006-11-2 16:12:27的发言:

我就是想问问如果有办法在这个类以外识别类以内的变量,我就在外面关闭数据库,呵呵,看来不成
我本想直接带入参数,在这个函数内把数据绑定到dataset或datareader中,然后就是和第一个问题一样的问题了
呵呵,偶许多问题还没搞明白呢,呵呵

你是没有办法在类的外面关闭数据库的,因为数据库链接的变量是类里的字段。

努力学,以后你都能弄明白


[face=仿宋_GB2312]一生那么长,长不过时间定义下的永远;一生那么短,短不过人海中一次又一次匆忙的擦肩。[/face]
2006-11-02 16:15
菜鸟先行
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2006-1-18
收藏
得分:0 
以下是引用小天狼星在2006-11-2 16:15:45的发言:

你是没有办法在类的外面关闭数据库的,因为数据库链接的变量是类里的字段。

努力学,以后你都能弄明白

哦,这样啊,非常感谢,呵呵


笨鸟先飞,菜鸟先行
2006-11-02 16:19
小天狼星
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:483
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用菜鸟先行在2006-11-2 16:19:03的发言:

哦,这样啊,非常感谢,呵呵

不用谢,下回选我做版主就可以了


[face=仿宋_GB2312]一生那么长,长不过时间定义下的永远;一生那么短,短不过人海中一次又一次匆忙的擦肩。[/face]
2006-11-02 17:54
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 

把要引用的东西的前面加上 public 就行了.不过不要写在方法的里面.


飘过~~
2006-11-02 20:58
快速回复:关于作用域的问题
数据加载中...
 
   



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

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