protected void ShowData() { string db = Server.MapPath("../App_Data/testdb.mdb"); string strconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + db; OleDbConnection conn = new OleDbConnection(strconn); //using command objects string sql = "select product_id, product_name,product_brief from [rit_product]"; OleDbCommand command = new OleDbCommand(sql, conn); conn.Open(); OleDbDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection); //display the fields name Response.Write("<tr>"); for( int i = 0 ; i<dr.FieldCount;i++) { Response.Write("<th>"+ dr.GetName( i ) + "</th>"); } Response.Write("</tr>"); //display the records while (dr.Read()) { Response.Write("<tr>"); /*for (int i = 0; i < dr.FieldCount; i++) { Response.Write("<td>" + dr.GetString(i) + "</td>"); } */ Response.Write("<td>" + dr.GetString(0) + "</td>");//这里出现了specified cast id valid的错误 Response.Write("<td>" + dr.GetString(1) + "</td>"); Response.Write("<td>" + dr.GetString(2) + "</td>"); Response.Write("</tr>"); } dr.Close(); } specified cast id valid ,有提示是数据类型的问题。 一直没有想起来,后来终于发现,表中的第0个字段是长整型。于是将dr.GetString(0)改成 dr.GetInt32(0)就好了。