从数据库读入

 

        private void Form1_Load(object sender, EventArgs e)
        {

            List<string> Tempstrs;
            String strSQL = "SELECT ID FROM Words ";
            Tempstrs = FindItems(strSQL);
            for (int i = 0; i < Tempstrs.Count; i++)
            {
                PublicClass.MyWords[i].Number = Tempstrs[i];
            }
            strSQL = "SELECT English FROM Words ";
            Tempstrs = FindItems(strSQL);
            for (int i = 0; i < Tempstrs.Count; i++)
            {
                PublicClass.MyWords[i].English = Tempstrs[i];
            }
            strSQL = "SELECT Chinese FROM Words ";
            Tempstrs = FindItems(strSQL);
            for (int i = 0; i < Tempstrs.Count; i++)
            {
                PublicClass.MyWords[i].Chinese = Tempstrs[i];
            }
            strSQL = "SELECT Levels FROM Words ";
            Tempstrs = FindItems(strSQL);
            for (int i = 0; i < Tempstrs.Count; i++)
            {
                PublicClass.MyWords[i].Levels = Tempstrs[i];
            }
            int GroupNumber = Tempstrs.Count / 100 + 1;
            PublicClass.GroupNumberCount = GroupNumber;
            PublicClass.WordNumberCount = Tempstrs.Count;
            ShowGroups();
        }

 

 

 

        private List<string> FindItems(string strSQL)//从数据库中查询各个选择项的内容
        {
            List<string> InputData = new List<string>();
            string MySource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|//Words.accdb";//ACCESS链接字符串
            OleDbConnection myConnection = new OleDbConnection(MySource); //OleDb链接类的实例化
            myConnection.Open();//打开数据库
            OleDbCommand MyCommand = new OleDbCommand(strSQL, myConnection);//创建Command命令对象
            OleDbDataReader dr = MyCommand.ExecuteReader();//创建DataReader对象,并调用ExecuteReader从数据源检索行
            int ItemNumber = 0;
            while (dr.Read())//启动阅读器的Read方法,返回行的每一列
            {
                ItemNumber++;
                InputData.Add(dr[0].ToString());//..数据读取
            }
            dr.Close();//关闭阅读器
            myConnection.Close();//关闭数据库
            return InputData;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以尝试以下几种方法来解决在Python中读入大量数据时内存不足的问题: 1. 分批读取数据:将数据分成较小的批次进行读取和处理。可以使用生成器或者迭代器来逐批加载数据,而不是一次性加载整个数据集到内存中。这样可以减少内存的使用量。 2. 使用数据库分页查询:如果你的数据是存储在数据库中,可以使用分页查询的方式来读取数据。通过设置合适的分页大小,每次只读取一部分数据,并在处理完后再读取下一批数据。 3. 压缩数据:如果你的数据具有较高的冗余性,可以考虑对数据进行压缩。Python中有许多压缩和解压缩库可供选择,如gzip、zipfile等。 4. 使用更高效的数据结构:如果你的数据可以转换为更高效的数据结构,可以考虑使用这些数据结构来减少内存的使用。例如,如果你的数据是稀疏矩阵,可以使用稀疏矩阵的表示方式来节省内存。 5. 使用内存映射文件:内存映射文件是一种将磁盘文件映射到内存的方式,它可以让你像操作内存一样操作大文件。通过内存映射文件,你可以只加载需要的部分数据到内存中,而不是一次性加载整个文件。 请注意,以上方法可能需要根据你的具体情况进行适当的调整和优化。另外,如果你的数据集仍然过大无法在单台机器上处理,可以考虑使用分布式计算框架或者云计算资源来处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值