在winform中创建本地数据库,并在后台从服务器获取数据

wanna_be_android_developer

我正在寻找一种方法来增强我的应用程序的性能,该方法过度使用了服务器上托管的数据库,因此该应用程序需要远程访问数据库,从而使其运行缓慢,因此我在考虑创建本地数据库,并在应用程序运行的那一刻从服务器填充数据库,然后每隔一小时或当用户决定注销后,定期对托管的mySQl数据库进行更新,我遇到的主要问题是我将拥有10- 20个用户,他们不会更新相同类型的数据,但是我怎么知道哪些表已更新,并据此我将这些更改应用于托管数据库?并且是否有任何文章或链接对此问题有进一步的解释?

我的应用程序是C#Windows窗体应用程序,数据库是mysql数据库。

我拥有的且执行所需的时间太长的查询之一是:

 /**
  * getting the schedule based on the submitted id
  * */
    public static Schedule2 getTeachersSchedule(String therapistID, int weekday, int period, int school_year)
    {
        // connecting to mysql database
        try
        {
            using (MySqlConnection myConn = new MySqlConnection(connectionString))
            {
                using (MySqlCommand command = new MySqlCommand("Select * FROM student_schedule2, weekday, school_year, period, task where school_year_id = school_year_id_fk AND therapist_id_fk =" + therapistID + " AND weekday_id = weekday_id_fk AND period_id=period_id_fk AND task_id=task_id_fk AND weekday_id=" + weekday + " AND period_id=" + period + " AND school_year_id =" + school_year, myConn))
                {
                    MySqlDataReader reader;
                    myConn.Open();
                    reader = command.ExecuteReader();
                    Schedule2 schedule = null;
                    while (reader.Read())
                    {
                        schedule = new Schedule2();
                        schedule.ID = reader.GetInt32("student_schedule2_id");
                        try
                        {
                            if (reader["student_id_fk"] != DBNull.Value)
                                schedule.student = getStudent(reader.GetString("student_id_fk"));
                            else
                                schedule.student = null;
                            Weekday weekDay = new Weekday();
                            weekDay.ID = reader.GetInt32("weekday_id");
                            weekDay.weekdayName = reader.GetString("weekday_name");
                            schedule.weekday = weekDay;
                            schedule.semesterName = reader.GetString("semester_name");
                            Period periodObj = new Period();
                            SchoolYear schoolYEar = new SchoolYear();
                            periodObj.ID = reader.GetInt32("period_id");
                            periodObj.period_name = reader.GetString("period_name");
                            schedule.period = periodObj;
                            schoolYEar.ID = reader.GetInt32("school_year_id");
                            schoolYEar.year_name = reader.GetString("school_year_name");
                            schedule.schoolYear = schoolYEar;
                            Task course = new Task();
                            course.ID = reader.GetInt32("task_id");
                            course.taskName = reader.GetString("task_name");
                            schedule.task = course;
                            schedule.therapist = getTherapist(reader.GetString("therapist_id_fk"));
                        }
                        catch
                        {

                        }

                    }

                    myConn.Close();
                    return schedule;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            return null;
        }
    }
理查德·施耐德(Richard Schneider)

由于所有数据都将通过网络发送,因此您的方法很容易出现陈旧的数据,并且很可能会变慢。

我建议您查看您的SQL查询,并确定它们为什么变慢。将索引添加到表将极大地帮助您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从服务器更新iOS本地数据库

来自分类Dev

本地服务器上的数据库URL

来自分类Dev

Azure SQL数据库按数据库服务器或用户创建的数据库定价

来自分类Dev

mongodump错误连接到本地主机中的数据库服务器

来自分类Dev

在同一服务器的许多数据库中批量创建表

来自分类Dev

在后台任务中更新数据库(Android)

来自分类Dev

在SQL Azure数据库中创建链接服务器

来自分类Dev

要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

来自分类Dev

iOS-Swift:在主线程中而不是在后台从数据库中获取数据

来自分类Dev

使用改造从服务器获取数据后如何在会议室数据库中存储数据

来自分类Dev

将MySQL数据库从本地MAMP服务器移动到主机的服务器

来自分类Dev

服务器与数据库通信

来自分类Dev

SSIS中数据库服务器的参数

来自分类Dev

如何访问并在Django框架中创建的Web服务器数据库中添加新行?

来自分类Dev

如何将本地数据从服务器数据库保存到本地数据库?

来自分类Dev

Java服务器数据库

来自分类Dev

在云和本地服务器上扩展数据库

来自分类Dev

通过查询获取数据库服务器在网络服务器中的位置

来自分类Dev

如何将本地数据库服务器连接到SQL Azure数据库服务器

来自分类Dev

从在线服务器更改为本地服务器时,数据库连接(wordpress)

来自分类Dev

要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

来自分类Dev

从其他RESTful服务器获取数据并在Spring中保存数据库

来自分类Dev

在服务器中创建数据库后建立新的 SQL 连接

来自分类Dev

从数据库服务器端创建绘图并在客户端对其进行可视化

来自分类Dev

如何备份 Azure SQL Server 数据库并在物理服务器中的 sql server 中还原

来自分类Dev

NodeJS异步数据库获取服务器冻结

来自分类Dev

带有本地 MySQL 服务器的 WordPress:无法选择创建的数据库作为 root

来自分类Dev

将 MySQL 数据库从实时服务器 MySQL 数据恢复到本地服务器 MySQL 数据

来自分类Dev

使用 C# 获取 Azure 服务器中的所有数据库

Related 相关文章

  1. 1

    从服务器更新iOS本地数据库

  2. 2

    本地服务器上的数据库URL

  3. 3

    Azure SQL数据库按数据库服务器或用户创建的数据库定价

  4. 4

    mongodump错误连接到本地主机中的数据库服务器

  5. 5

    在同一服务器的许多数据库中批量创建表

  6. 6

    在后台任务中更新数据库(Android)

  7. 7

    在SQL Azure数据库中创建链接服务器

  8. 8

    要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

  9. 9

    iOS-Swift:在主线程中而不是在后台从数据库中获取数据

  10. 10

    使用改造从服务器获取数据后如何在会议室数据库中存储数据

  11. 11

    将MySQL数据库从本地MAMP服务器移动到主机的服务器

  12. 12

    服务器与数据库通信

  13. 13

    SSIS中数据库服务器的参数

  14. 14

    如何访问并在Django框架中创建的Web服务器数据库中添加新行?

  15. 15

    如何将本地数据从服务器数据库保存到本地数据库?

  16. 16

    Java服务器数据库

  17. 17

    在云和本地服务器上扩展数据库

  18. 18

    通过查询获取数据库服务器在网络服务器中的位置

  19. 19

    如何将本地数据库服务器连接到SQL Azure数据库服务器

  20. 20

    从在线服务器更改为本地服务器时,数据库连接(wordpress)

  21. 21

    要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

  22. 22

    从其他RESTful服务器获取数据并在Spring中保存数据库

  23. 23

    在服务器中创建数据库后建立新的 SQL 连接

  24. 24

    从数据库服务器端创建绘图并在客户端对其进行可视化

  25. 25

    如何备份 Azure SQL Server 数据库并在物理服务器中的 sql server 中还原

  26. 26

    NodeJS异步数据库获取服务器冻结

  27. 27

    带有本地 MySQL 服务器的 WordPress:无法选择创建的数据库作为 root

  28. 28

    将 MySQL 数据库从实时服务器 MySQL 数据恢复到本地服务器 MySQL 数据

  29. 29

    使用 C# 获取 Azure 服务器中的所有数据库

热门标签

归档