1) 下载和 安装MDAC_27.EXE 实一下。 一般都是不行。 顺便杀下毒 和 重新安装一下access。
2) 绝大部分情况是 sql语句写错了, 请检查每个字符,包括空格。
下面错误 在于"Data Source" 中间多了几个空格,这是严重错误。 只能有一个空格,而且必须是一个空格隔开: "Data Source"
using System;
using System.Data.OleDb;
class OleDbTest
{
public static void Main()
{
//创建数据库连接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://db1.mdb");
//创建command对象并保存sql查询语句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();
//创建datareader 对象来连接到表单
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");
//循环遍历数据库
while (aReader.Read())
{
Console.WriteLine(aReader.GetInt32(0).ToString());
}
//关闭reader对象
aReader.Close();
//关闭连接,这很重要
aConnection.Close();
}
//一些通常的异常处理
catch (OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
while (true) ;
}
}
修改之后的结果如下:
using System;
using System.Data.OleDb;
class OleDbTest
{
public static void Main()
{
//创建数据库连接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://db1.mdb");
//创建command对象并保存sql查询语句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();
//创建datareader 对象来连接到表单
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");
//循环遍历数据库
while (aReader.Read())
{
// Console.WriteLine(aReader.GetInt32(0).ToString());
Console.WriteLine(aReader[0].ToString()); //上面语句可以写成这样
//Console.WriteLine(aReader[1].ToString());
}
//关闭reader对象
aReader.Close();
//关闭连接,这很重要
aConnection.Close();
}
//一些通常的异常处理
catch (OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
while (true) ;
}
}
using System;
using System.Data.OleDb;
class OleDbTest
{
public static void Main()
{
//创建数据库连接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://db1.mdb");
//创建command对象并保存sql查询语句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();
//创建datareader 对象来连接到表单
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");
//循环遍历数据库
while (aReader.Read())
{
// Console.WriteLine(aReader.GetInt32(0).ToString());
Console.WriteLine(aReader[0].ToString()); //上面语句可以写成这样
//Console.WriteLine(aReader[1].ToString());
}
Console.WriteLine("Connection Properties: ");
Console.WriteLine("Connection String :{0} ", aConnection.ConnectionString);
Console.WriteLine("Datbase :{0} ", aConnection.Database);
Console.WriteLine("DataSource:{0} ", aConnection.DataSource);// 数据库文件路径
//关闭reader对象
aReader.Close();
//关闭连接,这很重要
aConnection.Close();
}
//一些通常的异常处理
catch (OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
while (true) ;
}
}
using System;
using System.Data.OleDb;
class OleDbTest
{
public static void Main()
{
UInt32 startIndex = 0;
long rLen;
char[] tmp;
tmp = new char[100];
//创建数据库连接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://db1.mdb");
//创建command对象并保存sql查询语句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();
//创建datareader 对象来连接到表单
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");
//循环遍历数据库
while (aReader.Read())
{
// Console.WriteLine(aReader.GetInt32(0).ToString());
//Console.WriteLine(aReader[0].ToString()); //上面语句可以写成这样
//Console.WriteLine(aReader[1].ToString());
//Console.WriteLine(aReader.GetString(1));
rLen = aReader.GetChars(1, startIndex, tmp, 0, 100);
Console.WriteLine(tmp[0]);
}
Console.WriteLine("Connection Properties: ");
Console.WriteLine("Connection String :{0} ", aConnection.ConnectionString);
Console.WriteLine("Datbase :{0} ", aConnection.Database);
Console.WriteLine("DataSource:{0} ", aConnection.DataSource);// 数据库文件路径
//关闭reader对象
aReader.Close();
//关闭连接,这很重要
aConnection.Close();
}
//一些通常的异常处理
catch (OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
while (true) ;
}
}
带密钥的数据库读写:
using System;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace Console090507
{
class Program
{
static void Main(string[] args)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data Source=c://db2.mdb;Persist Security Info=False;Jet OLEDB:Database Password=080507;";
try
{
conn.Open();
Console.WriteLine("Connection opened ");
//Display connection properties
Console.WriteLine("Connection Properties: ");
Console.WriteLine("Connection String :{0} ", conn.ConnectionString);
Console.WriteLine("Datbase :{0} ", conn.Database);
Console.WriteLine("DataSource:{0} ", conn.DataSource);
}
catch (OleDbException e)
{
Console.WriteLine("Error " + e.Message);
}
finally
{
conn.Close();
}
while (true) ;
}
}
}