winform中窗体与创建类class如何传值?

天河之上 2016-03-28 12:11:19
创建类中有如下代码,现在我想在form1中接收数组Arr的值,该如何做

class odb
{
public void Conn()
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\DataBase\MyDB.mdb";
OleDbConnection odcConnection = new OleDbConnection(strConn);
odcConnection.Open();
OleDbCommand odCommand = odcConnection.CreateCommand();
odCommand.CommandText = "select * from guojia";
OleDbDataReader odrReader = odCommand.ExecuteReader();
ArrayList Arr = new ArrayList();
while (odrReader.Read())
{
Arr.Add(odrReader["1"].ToString());
}
odrReader.Close();
odcConnection.Close();

}
}
...全文
290 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天河之上 2016-03-28
  • 打赏
  • 举报
回复
引用 1 楼 qbilbo 的回复:
public void Conn() 改成:public ArrayList Conn() 函数最后return Arr;
那么form1中如何接收呢
nry19871012 2016-03-28
  • 打赏
  • 举报
回复

//调用
odb db = new odb();
ArrayList arrayList =  db.Conn();

class odb
    {
        public ArrayList  Conn()
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\DataBase\MyDB.mdb";
            OleDbConnection odcConnection = new OleDbConnection(strConn);
            odcConnection.Open();
            OleDbCommand odCommand = odcConnection.CreateCommand();
            odCommand.CommandText = "select * from guojia";
            OleDbDataReader odrReader = odCommand.ExecuteReader();
            ArrayList Arr = new ArrayList();
            while (odrReader.Read())
            {
                Arr.Add(odrReader["1"].ToString());
            }
            odrReader.Close();
            odcConnection.Close();
         return arr;
        }
    }
为轮子而生 2016-03-28
  • 打赏
  • 举报
回复
如果只是实现一个函数(或者一个单一的接口),何必要用到类?类是面向对象的产物,作为一个完整的对象,理论上应该有构造函数、属性、方法、实现接口等元素,它才可以作为独立的“工人”,接受命令、实现特定功能(或者存储数据)。你的这个“类”,如果想做到与Form进行交互,就应该留有一些属性或者集合(索引亦可),让窗口进行访问,而不是关起门来干自己的活。 比如: public string result { get{ } set{ } } 你将读取到的某个值给result记录下来,其他的对象就可以调用object.result来访问这个结果。 否则的话,你完全可以不使用“类”,直接让函数在窗体中工作,Arr的功能就直接实现了,但显然,这不符合面向对象的思路,也与楼主的初中相悖。
qbilbo 2016-03-28
  • 打赏
  • 举报
回复
public void Conn() 改成:public ArrayList Conn() 函数最后return Arr;
为轮子而生 2016-03-28
  • 打赏
  • 举报
回复
引用 4楼我是你的主体 的回复:
[quote=引用 1 楼 qbilbo 的回复:] public void Conn() 改成:public ArrayList Conn() 函数最后return Arr;
那么form1中如何接收呢[/quote]已经很明确告诉你了,ArrayList arrayList =  db.Conn(); 这就是在Form1中调用的方式,arrayList里存的就是你想要的值。 你是随便一用,还是要做一些开发?为什么不学一学基础的东西呢?总是“想实现什么功能”的时候就来网上或论坛找代码,你有多少精力和技术分让你挥霍,学习不是一件多麻烦的事,起码比你来等答案要容易。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧