C#access数据库操作

56 篇文章 1 订阅
Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data source=c:/D.mdb;Jet OLEDB:DataBase Password=123456!"


 private void GetCon()
       {
       string strConnection="PRovider=Microsoft.Jet.OleDb.4.0;";
               strConnection+=@"Data Source=C:\BegaspNET\Northwind.mdb";

        OleDbConnection objConnection=new OleDbConnection(strConnection);


      objConnection.Open();
      objConnection.Close();

       }
//以独占的方式打开

//文件--信息--加密/解密

PRovider=Microsoft.Jet.OleDb.4.0;Jet OLEDB:DataBase Password=123456789;Data Source=D:\ToWife.mdb;
1.
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
SQL="select * from auth where id="" & user_id &"""
SET uplist=dbconnection.EXECUTE(SQL)



2.
set dbconnection=Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "provider=microsoft.jet.oledb.4.0;data source="&dbpath
SQL="select * from auth where id="" & user_id &"""
SET uplist=dbconnection.EXECUTE(SQL)



3.
DBPath = Server.MapPath("customer.mdb")
set session("rs")=Server.CreateObject("ADODB.Recordset")
" rs=Server.CreateObject("ADODB.Recordset")
connstr="provider=microsoft.jet.oledb.4.0;data source="&dbpath
SQL="select * from auth where id="" & user_id &"""
session("rs").Open sql,connstr,1,3

//连接access2007
 OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=D:/数据库.accdb;Jet OLEDB:Database Password=123456;

//连接access2003
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin";Data Source=D:/数据库.mdb;Jet OLEDB:Database password=123456;")

//建odbc源
set conn=server.createobject("Adodb.connection")
conn.open "DSN=xxx;UID=;PWD=123456;Database=XXX" 


//破解密码
public static string GetMDBPassword(string file)
        {                      
            // 未加密的MDB文件,0x42到0x61之间的每间隔一字节的数值
            byte[] baseByte = { 0xbe, 0xec, 0x65, 0x9c, 0xfe, 0x28, 0x2b, 0x8a, 0x6c, 0x7b, 0xcd, 0xdf, 0x4f, 0x13, 0xf7, 0xb1, };
            byte flagByte = 0x0c; // 标志 0x62 处的数值
            string password = "";
            try
            {
                FileStream fs = File.OpenRead(file);
                fs.Seek(0x14, SeekOrigin.Begin);
                byte ver = (byte)fs.ReadByte();     // 取得access版本, 1为Access2000/2003, 0为Access97
                fs.Seek(0x42, SeekOrigin.Begin);
                byte[] bs = new byte[33];
                if (fs.Read(bs, 0, 33) != 33) return "";
                byte flag = (byte)(bs[32] ^ flagByte);
                for (int i = 0; i < 16; i++)
                {
                    byte b = (byte)(baseByte[i] ^ bs[i * 2]);
                    if (i % 2 == 0 && ver == 1) b ^= flag; //Access 2000/2003
                    if (b > 0) password += (char)b;
                }
            }
            catch { }

            return ( password.Equals( "" ) ? "没有密码!" : password );
        }


//up
private int up(string sql)
        {
            int index = 0;
            OleDbConnection con = GetCon();            
            try
            {
                if (con!=null)
                {
                    con.Open();
                    OleDbCommand oc = new OleDbCommand(sql, con);
                    return oc.ExecuteNonQuery();
                }
                return 0;
            }
            catch (Exception)
            {
                return 0;
            }
        }

//select
private DataTable select(string sql)
        {
            DataTable dt = new DataTable();
            OleDbConnection con = GetCon();
            try
            {
                if (con!=null)
                {
                    con.Open();
                    //用   OleDbDataAdapter   得到一个数据集
                    OleDbDataAdapter myCommand = new OleDbDataAdapter(sql,con);
                    DataSet myDataSet = new DataSet();
                    //把Dataset绑定books数据表
                    myCommand.Fill(myDataSet);
                    con.Close();
                    return myDataSet.Tables[0]; 
                }
                con.Close();
                return null;
            }
            catch (Exception)
            {
                con.Close();
                return null;
            }
        }

//
主键的操作
Function AddPrimaryKey()
'添加主键到[编号]字段
Dim strSQL As String
strSQL = "ALTER TABLE 表1 ADD CONSTRAINT PRIMARY_KEY " _
& "PRIMARY KEY (编号)"
CurrentProject.Connection.Execute strSQL
End Function

Function DropPrimaryKey()
'删除主键
Dim strSQL As String
strSQL = "ALTER TABLE 表1 Drop CONSTRAINT PRIMARY_KEY "
CurrentProject.Connection.Execute strSQL
End Function

转载请保留原地址. http://www.cnblogs.com/lsqandzy

 

本文介绍C#访问操作Access数据库的基础知识,并提供一个相关的例程。 1.通过ADO.NET的OleDb相关类来操作Access 主要知识点如下: using System.Data.OleDb; using System.Data; 连接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb"; 建立连接:OleDbConnection connection = new OleDbConnection(connectionString); 使用OleDbCommand类来执行Sql语句: OleDbCommand cmd = new OleDbCommand(sql, connection); connection.Open(); cmd.ExecuteNonQuery(); 2.取得Access自增标识字段在插入数据后的id值 cmd.CommandText = @"select @@identity"; int value = Int32.Parse(cmd.ExecuteScalar().ToString()); return value; 3.执行事务 需要用到OleDbTransaction,关键语句如下: OleDbConnection connection = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); OleDbTransaction transaction = null; cmd.Connection = connection; connection.Open(); transaction = connection.BeginTransaction(); cmd.Transaction = transaction; cmd.CommandText=sql1; cmd.ExecuteNonQuery(); cmd.CommandText=sql2; cmd.ExecuteNonQuery(); transaction.Commit(); 4.执行查询,返回DataSet OleDbConnection connection = new OleDbConnection(connectionString); DataSet ds = new DataSet(); connection.Open(); OleDbDataAdapter da = new OleDbDataAdapter(sql, connection); da.Fill(ds,"ds"); 5.分页查询 分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。 以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page 代码这里下载AccessDBUtilDemo.rar (191.37 KB , 下载:999次) 本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。 本例程演示了: 1.Access数据库的插入,更新,修改,查询; 2.带参数的sql语句的使用,而不是拼SQL; 3.使用DataReader的分页查询,而不是用嵌套的SQL语句来分页; 4.用事务同时执行多个SQL语句; 5.在插入数据的同时返回最新的ID值; 6.整型,实型,字符串,日期型,布尔型五种数据类型的操作; 7.使用正则表达式来验证整数和实数; 8.listview用来显示数据的一些基本用法。 本示例不包括: 1.高效的分页查询,仅仅是提供了一种分页的方法,但我认为DataReader应该比嵌套的SQL语句快(未测试)。 2.完善的分页封装,只提供了分页的简单包装。 3.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。 4.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值