2571|0

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

几个保存数据问题一直解决不了,请高人指点!应该属于新手问题! [复制链接]

1.我写的PDA程序似乎不能使用Access数据库,在命名空间引用时出错,无法使用using System.Data.OleDb;因此OleDbConnection无法使用,是不是PDA程序不能用Access数据库?
2.想使用Ini文件保存数据,但使用PC桌面程序调试成功,移植到PDA程序运行到写ini文件时出错,提示MissingMethodException.读写ini文件的类与PC桌面程序中使用的一样,唯一的改动是把路径改了把"D:\\Bxsg\\text.ini"改为"\\Program Files\\Bxsg\\text.ini"难道PDA程序也不能使用ini文件?
3.最后想到使用SqlServerCe保存数据,调试结果通过,可以存,可以写,但是问题是只能保存本次运行的数据,当再次运行程序时,原来数据丢失,我使用的是SqlServerCe帮助中的例子:原程序如下,
public void SavDbToCe(int tPower,int tElectricity,int tVoltage)
                {
                        if (File.Exists(ls_IniFilename))
                        File.Delete(ls_IniFilename);

                        string strConn="Data Source=\\Program Files\\Bxsg\\text.sdf";
                        SqlCeEngine engine=new SqlCeEngine(strConn);
                        try
                        {
                                //建立连接数据库
                                engine.CreateDatabase ();
                                engine.Dispose();
                                conn = new SqlCeConnection(strConn);
                                conn.Open();
                                //创建表
                                SqlCeCommand cmd = conn.CreateCommand();
                                cmd.CommandText ="CREATE TABLE TestTbl(id int PRIMARY KEY, power int, electricity int,voltage int)";
                                cmd.ExecuteNonQuery();
                                //插入数据
                                cmd.CommandText ="INSERT INTO TestTbl(id,power,electricity,voltage) VALUES (0,'"+tPower+"','"+tElectricity+"','"+tVoltage+"')";
                                cmd.ExecuteNonQuery();
                               
                                 //读数据
                                SqlCeDataReader rdr =null;
                                cmd.CommandText = "SELECT * FROM TestTbl";
                                rdr = cmd.ExecuteReader();
                                while (rdr.Read())
                                {
                                        int id =rdr.GetInt32(2) ;
                                }

                                this.CloseDb();
                               
                        }
                        catch(Exception f)
                        {
                                MessageBox.Show(f.Message);
                        }
                }

原因是,每次建立数据库前有个判断if (File.Exists(ls_IniFilename))
                                File.Delete(ls_IniFilename);
造成每次都要删除上次创建的数据库,结果库里永远只有一条记录.如果把这两行代码删除,程序运行到建立数据库时就会报错:SqlCeException,无论路径中有无text.sdf文件都会报这个错误.

以上3个问题困扰我很久,希望高人指点,不胜感激!
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表