zoukankan      html  css  js  c++  java
  • wpf首次项目开发技术总结之access数据库

        我们项目基本框架基本上搭建好,接下来便是后台数据库的搭建,我们这次的项目是一个对数据库要求不是很多的应用,而且数据库的数据不是很多,我们考虑到资源利用,所以我们一致采用access数据库,虽然我们兜对access数据库不是很熟,我们总觉得access数据库应该很简单。我们sql server数据库都没问题,这个应该没问题吧。

       我们很快也就成功连接到了access数据库,string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\\app_data\\HappyGame.mdb;";
                OleDbConnection conn = new OleDbConnection(connstring);
                string strsql = "select * from [dbuser] where username='" + textBox1.Text + "'and pwd='" + passwordBox1.Password + "'";
                OleDbCommand cmd = new OleDbCommand(strsql, conn);
                conn.Open();
                OleDbDataReader rd = cmd.ExecuteReader();

    但是access数据库本身就有他自己独特的劣根型啊,首先利用access数据库存取数据,当你定义一个自动编号的列,如果数据被删除,这个编号就不会被其他数据条占用,就会造成我们的的数据库编号不是连续的,这个问题只要我们的个列不会在数据操作过程中没有使用,是没有关系的,但是有使用到这样的列,就不能保证不能出问题啊。

      我们这个项目有一个随机从数据库读取数据的要求,而实现随机读取便是我们数据库方面的第一个问题,我们利用rnd()sql系统随机函数对sql语句进行处理,可以我们的随机无论怎样也不是随机的,我们在网上找了很多相关的资料,网上很多也是利用我们这种方法,经过我们综合网上的方法,我们终于成功解决这个问题:

     Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));
                int intRandomNumber = rnd.Next();

      strsql = "select * from [" + Application.Current.Properties["table"] + "] order by Rnd(" + (-1 * intRandomNumber) + "*id)";

    我们在随机数本身,定义一个变量保存rnd.next()函数产生的下一个随机数,而在sql语句中Rnd(" + (-1 * intRandomNumber) + "*id),这样在rnd函数中加入负值,就会避免每次产生相同顺序的序列,这样每次不会产生重复序列,这样就解决我们随机的问题。

  • 相关阅读:
    FPGA基础学习(2) -- FIFO IP核(Quartus)
    FPGA中如何实现除法?
    GPIO初始化之PB3/PB4/PA13/PA14/PA15引脚的复用--寄存器版本
    图像处理实际应用启发
    霍夫变换(hough transform)
    傅里叶变换讲解
    模拟电路学习入门的建议(综合整理)
    低噪声APD偏置电路
    如何安装altium designer 10
    后仿真
  • 原文地址:https://www.cnblogs.com/nghygaojun/p/3071403.html
Copyright © 2011-2022 走看看