zoukankan      html  css  js  c++  java
  • Wince下sqlce数据库开发(二)

    上次写到使用数据绑定的方法测试本地sqlce数据库,这次使用访问SQL Server的方法访问sqlce,你会发现他们是如此的相似。。。

    参考资料:http://www.cnblogs.com/rainman/archive/2012/03/13/2393975.html

    本文的最后附有本次测试的全部代码,大家可以去下载。当然,我更希望这里作为一个交流的平台,能够相互的学习,如果你们有其他的想法希望可以告诉我

    注:开发环境VS2008       开发语言:C#

    1.创建Wince下的Winform窗体程序:

    具体过程不再赘述,可参照上一篇博文,我这里做了一个简单的数据增删改查的示例。

    注:创建完成后需要添加对SqlServerCe的引用:

    路径:C:Program FilesMicrosoft SQL Server Compact Editionv3.5DevicesSystem.Data.SqlServerCe.dll

    添加引用:using System.Data.SqlServerCe

    图1 添加对SqlServerCe的引用

    对于主窗体,包含

    6个button,分别为:全部显示,部分显示,增加,删除,修改和退出;

    1个datagrid:用于数据显示。

    图2 主窗体

    2.全部显示

    图3 添加显示的数据库文件

    图4 全部显示

     1   string strAddr = "";
     2 
     3   OpenFileDialog ofd = new OpenFileDialog();
     4   if (ofd.ShowDialog() == DialogResult.OK)
     5   {
     6        strAddr = ofd.FileName;
     7   }
     8   string constr = "Data Source=" + strAddr + ";";
     9   SqlCeConnection conn = new SqlCeConnection(constr);
    10   conn.Open();
    11 
    12   string cmdtxt = "select * from DBtest";
    13   SqlCeDataAdapter adap = new SqlCeDataAdapter(cmdtxt, conn);
    14   DataSet ds = new DataSet();
    15   adap.Fill(ds);
    16 
    17   dataGrid1.DataSource = ds.Tables[0].DefaultView;

    3.部分显示

    对于部分显示,本次只读取了name和sex两列,细心的话你会注意到这里显示的是“姓名”“性别”而不是全部显示里的“name”“sex”

    图5 部分显示

     1   string strAddr = "";
     2 
     3   OpenFileDialog ofd = new OpenFileDialog();
     4   if (ofd.ShowDialog() == DialogResult.OK)
     5   {
     6       strAddr = ofd.FileName;
     7   }
     8   string constr = "Data Source=" + strAddr + ";";
     9   SqlCeConnection conn = new SqlCeConnection(constr);
    10   conn.Open();
    11 
    12   string cmdtxt = "select name as 姓名,sex as 性别 from DBtest";
    13   SqlCeDataAdapter adap = new SqlCeDataAdapter(cmdtxt, conn);
    14   DataSet ds = new DataSet();
    15   adap.Fill(ds);
    16 
    17   dataGrid1.DataSource = ds.Tables[0].DefaultView;

    4.删除

    删除"name"为“zhao”的项,然后重新打开部分显示(没办法,增加删除没有做输入控件,无法选择或者信息填入,就拿个固定的项做个示例)

    图6 删除

     1   string strAddr = "";
     2   OpenFileDialog ofd = new OpenFileDialog();
     3   if (ofd.ShowDialog() == DialogResult.OK)
     4   {
     5       strAddr = ofd.FileName;
     6   }
     7   string constr = "Data Source=" + strAddr + ";";
     8   SqlCeConnection conn = new SqlCeConnection(constr);
     9   conn.Open();
    10 
    11   SqlCeCommand mycommand = new SqlCeCommand();
    12   mycommand.CommandType = CommandType.Text;
    13   //mycommand.CommandText = "select select name as 姓名,sex as 性别 from DBtest";
    14   mycommand.CommandText = "delete from DBtest where name='zhao'";
    15   mycommand.Connection = conn;
    16 
    17   mycommand.ExecuteNonQuery();
    18   conn.Close();

    5.增加

    注:此操作需要在删除后进行,否则因为存在相同的记录,程序会报错(这只是一个示例,大家不要强求太完美啊==!)

    图7 增加

     1   string strAddr = "";
     2   OpenFileDialog ofd = new OpenFileDialog();
     3   if (ofd.ShowDialog() == DialogResult.OK)
     4   {
     5        strAddr = ofd.FileName;
     6   }
     7   string constr = "Data Source=" + strAddr + ";";
     8   SqlCeConnection conn = new SqlCeConnection(constr);
     9   conn.Open();
    10 
    11   SqlCeCommand mycommand = new SqlCeCommand();
    12   mycommand.CommandType = CommandType.Text;
    13   //mycommand.CommandText = "select select name as 姓名,sex as 性别 from DBtest";
    14   mycommand.CommandText = "insert into DBtest(name,sex,tel) values ('zhao','man','111111111')";
    15   mycommand.Connection = conn;
    16 
    17   mycommand.ExecuteNonQuery();
    18   conn.Close();

    6.修改

    将“zhao”这一条记录的“tel”改为“2222222222”(注,原来为1111111111,上一条刚刚增加)

    图8 修改

     1   string strAddr = "";
     2   OpenFileDialog ofd = new OpenFileDialog();
     3   if (ofd.ShowDialog() == DialogResult.OK)
     4   {
     5       strAddr = ofd.FileName;
     6   }
     7   string constr = "Data Source=" + strAddr + ";";
     8   SqlCeConnection conn = new SqlCeConnection(constr);
     9   conn.Open();
    10 
    11   SqlCeCommand mycommand = new SqlCeCommand();
    12   mycommand.CommandType = CommandType.Text;
    13   //mycommand.CommandText = "insert into DBtest(name,sex,tel) values ('zhao','man','111111111')";
    14   mycommand.CommandText = "update DBtest set tel='2222222222'where name='zhao'";
    15   mycommand.Connection = conn;
    16 
    17   mycommand.ExecuteNonQuery();
    18   conn.Close();

     

    7.写在最后的话

    本人不是计算机出身,上位机开发和数据库纯属自学,但是还是希望能和各位朋友能够交流。我也有很多不会的,但是我会把自己会的,或者自认为可以很好解决某一个问题的方法拿出来和大家交流,希望借助博客这个平台,交到很多志同道合的朋友!!!!!

    8.下载地址

    代码下载地址:

    http://download.csdn.net/detail/u010312811/8398555

    下载的积分有点高,实在是csdn太坑,我也是被其他网友把积分都坑完了。有不想花积分的可以留下邮箱,我把代码发过去,不好意思哈

    菜鸟一枚,但有一颗不断进取的心; 兴趣所至,相信自己终会成功!!!!! 加油,imstrive
  • 相关阅读:
    转移虚拟机后ubuntu network available SIOCSIFADDR: No such device
    模板中国剩余定理
    数论 CF27E Number With The Given Amount Of Divisors
    模板 输入输出优化
    模板 欧拉定理
    洛谷P1141 01迷宫
    图论拓扑排序
    归并排序 分治
    HZNUACM寒假集训Day12小结 数论入门 题解
    组合数学基础
  • 原文地址:https://www.cnblogs.com/imstrive/p/4251096.html
Copyright © 2011-2022 走看看