Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保持数据可供整个项目访问?_C# - Fatal编程技术网

C# 如何保持数据可供整个项目访问?

C# 如何保持数据可供整个项目访问?,c#,C#,嗯。我做了一个小项目 但问题是,我需要的一些数据在整个项目中都不可用 我的意思是,每次我在表单之间切换时,我都需要打开数据库并从同一个SqlDataAdapter填充相同的数据 相反,是否可以将所有项目表单的数据保存在全局某个位置 在我的项目中,我有一个用于查询和表格的类,无论我在哪里需要表格中的数据,我都会在那里调用SUB来填充表格,如下所示 Class1.cs ========= public void MyTableFill() { Con.Conne

嗯。我做了一个小项目

但问题是,我需要的一些数据在整个项目中都不可用

我的意思是,每次我在表单之间切换时,我都需要打开数据库并从同一个SqlDataAdapter填充相同的数据

相反,是否可以将所有项目表单的数据保存在全局某个位置

在我的项目中,我有一个用于查询和表格的类,无论我在哪里需要表格中的数据,我都会在那里调用SUB来填充表格,如下所示

Class1.cs
=========
public void MyTableFill()
       {
            Con.ConnectionString = Con_1;
            Con.Open();
            SQLDAp = new SqlDataAdapter(MyQry, Con);
            SQLDAp.Fill(MyTable);
            Con.Close();
        }

Form1.cs
========
Class1 MyDatas = new Class1();

Form1_Load()
        {
            MyDatas.MyTableFill();
        }

Form2.cs
========
Class1 AccDatas=new Class1();

Form2_Load()
        {
            AccDatas.MyTableFill();
        }
谢谢

您只需要

a) 在打开窗体中初始化并填充适配器

b) 创建一个接受所有其他形式的适配器的构造函数

c) 将适配器作为参数从一个窗体传递到下一个窗体


PS:您也可以将适配器作为引用传递,这样可以保存任何更改。

您确定要这样做吗?出于充分的理由,不鼓励使用全局状态。您希望开始使用正确的命名方案。打电话给你的班级Class1和form1以及类似的课程将很快使任何人都无法阅读/维护代码。我不清楚,可以吗。解释一下原因…为什么我们要调用所有形式的永久数据。?ThanksIt是一种引用类型,所以无论你做什么,它都会被传递