Access数据库“自动编号”字段归零
原文:http://blog.sina.com.cn/s/blog_5fdcf5c90100fher.html
Access数据库“自动编号”字段归零
Access数据库“自动编号”数据类型是一个非常实用的类型,它可以很方便地帮助我们完成标识不同记录ID的工作。但是由于JET引擎的特性(SQL server使用T-SQL),当我们在Access数据库某张表中执行了删除所有数据的操作后,被用来标识唯一ID的字段将不再归零(从头开始计数),而是会继续延续上次ID递增计数,我们可以用若干种方法解决这样的问题,以下结合ASP推荐两种方法(以下方法都是建立在空数据表的“自动编号”归零的前提下):
第一种:压缩数据库
用过Access的朋友应该都知道在Access的工具栏上我们可以通过:
点击“工具”=>“数据库实用工具”=>“压缩和修复数据库”来完成对数据库的压缩和修复工作,当这项工作完成时,Access各空数据表的“自动编号”字段也会做归零操作。
而我们也可以用ASP来完成这项工作,以下是压缩数据库主要SUB:
<%
Sub CompactDB(strDBFileName)
Set fso = CreateObject("Scripting.FileSystemObject")
Dim strOldDB
strOldDB = Server.MapPath(strDBFileName)
Dim strNewDB
strNewDB = Server.MapPath("New" & strDBFileName)
If fso.FileExists(strOldDB) Then
'压缩数据库
Set jro= Server.CreateObject("JRO.JetEngine")
strPvd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
jro.CompactDatabase strPvd & strOldDB , strPvd & strNewDB
set jro= Nothing
'删除旧的数据库文件
fso.DeleteFile strOldDB
' 将压缩好的数据库文件拷贝回来
fso.MoveFile strNewDB, strOldDB
Response.Write "数据库压缩完毕!"
Else
Response.Write "找不到指定的数据库文件!"
End If
Set fso = Nothing
End Sub
%>
我们可以很轻松地使用<%Call CompactDB("yourdb.mdb")%>完成调用。
相关文档:
//根据主键来删除表中的数据。
//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
OleDbConnection sqlConnection = new OleDbConnection(GetConnection());
& ......
C#连接连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwin ......
一:
1 密码是数据库密码:
设置数据库密码,打开密码为555打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=555"
2 用户组:
用户名为 admin 密码为 rr 用户组文件为 c:\system.mdw,打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0 ......
用TSQL把Access的表导入到远程Sql Server:
把access 的.mdb里t_itemList 表的数据插入到远程SqlServer的t_itemL1111111表里。
SELECT top 10 * INTO t_itemL1111111 IN [ODBC]
[ODBC;Driver=SQL Server; UID=jyb;PWD=jyb;Server=10.1.18.49;DataBase=所有合并;]
&nb ......
转自
http://topic.csdn.net/t/20050110/09/3711952.html
access中时间要用#,不是双引号
select * from kc where rq < #2000-01-01# and rq>#2002-01-01#
不要用between,它的效率泰低
使用# 而不是 ......