以前连接数据库都是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。