分享好友 数据库首页 频道列表

Access使用总结一篇

Access教程  2015-06-28 23:340
1.如何使用Access
两年前用过一点Access,感觉它小问题很多,就没有再用。这次的程序是放在千兆宽网的虚拟主机上,这个虚拟主机不支持Sqlite,读取数据的时候是好的,只要往数据库里边写东西,就会报错,Some Disk I/O Error Occured。很神奇,换了一个虚拟主机试试,没有问题。说明不是我程序的问题。后来只能换成Access。用ADO.NET读取数据库其实都差不多,主要就是一个连接字串的问题,还有就是一些数据库差异要注意。

1.1 数据库连接串

<add name="ConnectionString" connectionString="data source=|DataDirectory|\we.mdb;Provider=Microsoft.Jet.OLEDB.4.0" /> 连接串很简单,只需要指定DataSource就可以,这里的|DataDirectory|是指的App_Data目录。Asp.net的这种方式可以使我们很方便的用相对路径来指定数据库文件的位置。这里的Provider采用Oledb驱动。

1.2 使用

在程序中使用是很简单的,只是把Connection,Command之前的前缀换掉就可以了。举一个例子:
复制代码 代码如下:

public DataTable GetAll(string num,int min,int startRecord, int pageSize)
{
string sql = string.Format("select Num ,minPrice ,isUsed from PhoneNumber where Num like '{0}%' and isUsed=0", num);
if (min != 0)
{
sql += "and minPrice=@p1";
}
using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConnStr))
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
if (min != 0)
cmd.Parameters.AddWithValue("p1", min);
OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
DataTable table = new DataTable();
adp.Fill(startRecord,pageSize,table);
return table;
}
}

当然还要添加using:using System.Data.OleDb;
using System.Data;ADO.NET的处理方式都是很类似的,事实上,ADO.NET有一套以Db为前缀的Connection,Command等类,这些具体的类都是继承自DbConnection,所以看起来都是一样的。

1.3 差异

上面提到,Access是很诡异的。以下列举一些我遇到的:

1.3.1 user 是关键字,如果有表名或者列名是user而没有加中括号,是会出错的。当然,一致地在所有的表名和列名外加中括号是一个良好的编程习惯。

1.3.2 直接插DateTime型的数据是会报错的,即使数据库里的字段类型确实是Date,插入的方式是把C#的DateTime型ToString()过后再插入。

1.3.3 没有bool型,或者bit型,叫yesno……

1.3.4一个命令里边不支持多条sql。这个限制也很讨厌,每次执行一个command的时候里面只能包含一条sql,非常不方便,即使是小巧如Sqlite的数据库也没有这个限制。

1.3.5 参数顺序的问题. 声明的参数顺序必须要和你往command里边添加参数的声明一致.否则很有可能什么错也不报,就是不影响结果(update的时候,其他时候没试过). Access真是极品数据库啊!!例如
复制代码 代码如下:

string sql = "update [user] set WorkField=@p1, Company=@p3,IC=@p4,Contact=@p5,Phone=@p6,Mobile=@p7,Address=@p8,Email=@p9,Introduction=@p10 "
+ "where username=@p2";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("p1", entity.WorkField);
cmd.Parameters.AddWithValue("p3", entity.Company);
cmd.Parameters.AddWithValue("p4", entity.IC);
cmd.Parameters.AddWithValue("p5", entity.Contact);
cmd.Parameters.AddWithValue("p6", entity.Phone);
cmd.Parameters.AddWithValue("p7", entity.Mobile);
cmd.Parameters.AddWithValue("p8","");
cmd.Parameters.AddWithValue("p9", string.IsNullOrEmpty(entity.Email)?" ":entity.Email);
cmd.Parameters.AddWithValue("p10", string.IsNullOrEmpty(entity.Introduction)?" ":entity.Introduction);
cmd.Parameters.AddWithValue("p2", entity.UserName);
int i= cmd.ExecuteNonQuery();这样是可以的,但是把

cmd.Parameters.AddWithValue("p2", entity.UserName);

提到前面去,就不行了,更新不了. 幸好在csdn上搜到有人也问这个问题,不然都不知道怎么搞。

2.z-index的问题。
包含在其他HTML元素内部的HTML元素的z-index只是相对于位于同一层次的元素的z-index,对其父元素之外的元素的z-index没有影响,也就是说如果父元素的z-index很小,比如是0,内部元素的z-index很高,1000.父元素相邻的元素的z-index是2,如果内部元素溢出去了,和相邻元素重合,那么被覆盖的还是内部元素。

查看更多关于【Access教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
可同时操作多个不同类型的数据库。 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号。 调用非常简单,对数据库的主要操作一般只需要一行代码。 支持mssql事务回滚。 可自动生成和输出sql语句方便调试。 使用方法: 1. 修改clsDbctrl.asp文件中

0评论2023-02-10733

MySQL 、SQL MS Access、和 SQL Server 数据类型
MySQL 数据类型在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。Text 类型:数据类型描述CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。VARCHA

0评论2023-02-10897

mysql导入sql文件错误#1044 - Access denied for user 'root'@'localhost'
在我的个人知识管理中,经常用到mysql数据库,wordpress搭建的worklog、搜索测试数据、我blog的测试环境等。我在自己的电脑上整了WAMP(Windows Apache MySQL PHP),哈哈,不是LAMP,用linux做桌面和周围的同事沟通还是不顺畅。十一前换了台新的笔记本,原来

0评论2023-02-09963

Oracle SQL Access Advisor 说明
 一.说明1.1 相关内容在如下官方文档中提到了一些优化工具的说明:Monitoring and Tuning the Databasehttp://docs.oracle.com/cd/E11882_01/server.112/e10897/montune.htm Using Advisors to Optimize DatabasePerformanceOracle Databaseincludes a set

0评论2023-02-09518

mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法
这篇文章主要介绍了mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法,本文给出详细的解决步骤及操作注释,需要的朋友可以参考下

0评论2015-11-13101

mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database
这篇文章主要介绍了mysql下提示ERROR 1044 (42000): Access denied for user ''@'localhost' to database,需要的朋友可以参考下

0评论2015-11-12162

Access数据库日常维护方法(优化)
这篇文章主要介绍了Access数据库日常维护方法(优化),需要的朋友可以参考下

0评论2015-10-26146

Access创建一个简单MIS管理系统
所谓MIS管理系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。MIS管理系统是一种新兴的技术,那么下文中就给大家介绍Access这个有历史的数据库系统如何创建一个简单的MIS管理系统。

0评论2015-10-08162

Access转成SQL数据库的方法
很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项。

0评论2015-09-1789

浅谈mssql access数据库 top分页方法
双top法相比于not in和max法,就是可以传入一条sql语句来生成分页sql语句,也可多字段排序

0评论2015-08-07116

Access连接数据源(ODBC)配置(新手必知)
win7 64位旗舰版控制面板中管理工具下的数据源(ODBC)配置竟然只有SQLServer的驱动,其他的都没有了,此问题的解决方法如下

0评论2015-06-28116

用SQL语句查找Access中某表是否存在的小技巧
在Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事,按照下面的步骤执行并在程序中通过SQL语句查询表是否存在

0评论2015-06-28143

一句sql更新两个表并可更新对应的字段值具体实现
本文用一句sql语句更新两个表并可更新对应的字段的值,具体的实现如下,有类似需求的朋友可以参考下,希望可以帮助到你

0评论2015-06-28120

Access执行SQL的方法
Access里面怎么执行Sql呢?虽然说有界面减少了不少工作量,但是我还是习惯于执行SQL。

0评论2015-06-2863

Access数据库不能写不能更新的解决方法
本文提供了Access数据库不能写不能更新的解决方法,主要是权限原因,具体看下面的具体解决方法

0评论2015-06-2889

access数据库用sql语句添加字段,修改字段,删除字段
微软的 Access 中包含 Data Definition Language (DDL) 来建立删除表以及关系,当然了,这也可以用 DAO 来解决。

0评论2015-06-28125

自己动手把ACCESS转换到SQLSERVER的方法
这篇文章主要介绍了自己动手把ACCESS转换到SQLSERVER方法,需要的朋友可以参考下

0评论2015-06-2885

更多推荐