net连接access数据库,输出结果到页面
以前连接数据库都是SQL Server,今天忽然用到了access,开始还有点担心是不是一个样子的,后来试了一下发现和以前用SQL Server连接数据库的方式是一样的。把代码贴一下看看吧
1、开始用的表的名称是user,每次运行的时候总是出错,说是“FROM 子句语法错误”,后来想了想发现user属于系统名称,这里的表名称定义有问题。
2、这个也是我想不通的问题,开始我没有对DataSet和DataTable定义DataSetName名称和DataTable名称,结果输出来的只是数据库中的数据,没有结构出来,后来给DataSet和DataTable随便定义个名称输出结构就对了。我这里跟踪调试了一下,发现如果没有定义名称的话,系统给个 指定的名称,分别是NewDataSet和NewDataTable。
string tableName = "music";
OleDbConnection conn;
OleDbDataAdapter da;
DataTable dt = new DataTable();
string dbname = @"E:\data.mdb";// server.mappath("authors.mdb");
conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + dbname);
conn.Open();
da = new OleDbDataAdapter("select * from "+tableName+"", conn);
DataSet ds = new DataSet();
da.Fill(dt);
ds.Tables.Add(dt);
ds.DataSetName = "DataSetName";
ds.Tables[0].TableName = "UserInfor";
string aaa = ds.GetXml();
string bb = aaa.Insert(0, "<?xml version='1.0' encoding='utf-8' ?> \r\n ");
Response.Write(bb);
Response.End();
我这段代码的功能是从数据库中查出满足条件的数据,然后输出到页面。但是遇到了两个问题有点想不通,所以在这里贴出来。OleDbConnection conn;
OleDbDataAdapter da;
DataTable dt = new DataTable();
string dbname = @"E:\data.mdb";// server.mappath("authors.mdb");
conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + dbname);
conn.Open();
da = new OleDbDataAdapter("select * from "+tableName+"", conn);
DataSet ds = new DataSet();
da.Fill(dt);
ds.Tables.Add(dt);
ds.DataSetName = "DataSetName";
ds.Tables[0].TableName = "UserInfor";
string aaa = ds.GetXml();
string bb = aaa.Insert(0, "<?xml version='1.0' encoding='utf-8' ?> \r\n ");
Response.Write(bb);
Response.End();
1、开始用的表的名称是user,每次运行的时候总是出错,说是“FROM 子句语法错误”,后来想了想发现user属于系统名称,这里的表名称定义有问题。
2、这个也是我想不通的问题,开始我没有对DataSet和DataTable定义DataSetName名称和DataTable名称,结果输出来的只是数据库中的数据,没有结构出来,后来给DataSet和DataTable随便定义个名称输出结构就对了。我这里跟踪调试了一下,发现如果没有定义名称的话,系统给个 指定的名称,分别是NewDataSet和NewDataTable。