• 售前

  • 售后

热门帖子
入门百科

Access 使用总结一篇

[复制链接]
知足常乐77 显示全部楼层 发表于 2021-8-14 14:32:26 |阅读模式 打印 上一主题 下一主题
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,如果内部元素溢出去了,和相邻元素重合,那么被覆盖的还是内部元素。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作