总算找到了问题的原因了,爽,不过感觉自己太粗心了。

原创 2006年06月09日 13:51:00

这段代码一直找不到什么地方错了,编译能通过,但是就是没有办法取得数据库中的值,十分郁闷。

到csdn上拜了个高手为师,结果都是指出了一些无关紧要的错误,不过还是得到了一些检查bug的基本方法。

最后在查网页信息的时候,对照人家写的连接Access的源代码一条一条看,才发现原来是红色部分出了问题,而且是两个问题:

1.provider的值给错了Microsoft.Jet.OleDb.4.0写成了Microsoft.Jet.Ole.4.0

2.Server.MapPath(("hqcs.mdb")取出的值居然是D:/hqcs/page/hqcs.mdb,而实际的路径是D:/hqcs/DataSource/hqcs.mdb,这个问题我现在还没找到原因,msdn上关于server.mappath()有好几个版本,我还不能确定到底应该使用那个版本。

namespace hqcs.ascx
{
 using System;
 using System.Data;
 using System.Drawing;
 using System.Web;
 using System.Web.UI.WebControls;
 using System.Web.UI.HtmlControls;

 //database
 using System.Data.OleDb;
 using System.Data.SqlClient;


 
 

 //Global funstions
 //using hqcs.Global;

 /// <summary>
 ///  Summary description for hqcsNavigationBar.
 /// </summary>
 public class dtgNavigationBar : System.Web.UI.UserControl
 {
  protected System.Web.UI.WebControls.DataGrid dtgNBar;
  protected System.Web.UI.WebControls.Label Label1;

  private OleDbConnection conNBar;
  private OleDbCommand cmdNBar;
  private OleDbDataAdapter dapNBar;
  private DataSet dstNBar;
  private DataView dtvNBar;


  private void Page_Load(object sender, System.EventArgs e)
  {
   // Put user code to initialize the page here
   //connect to database
   //string strConnAccess = "Provider = Microsoft.Jet.Ole.4.0;Data Source = " + Server.MapPath("hqcs.mdb");
   string strConnAccess = "Provider = Microsoft.Jet.OleDb.4.0;";
   strConnAccess += "Data Source = D://hqcs//DataSouce//hqcs.mdb";

   conNBar = new OleDbConnection();
   conNBar.ConnectionString = strConnAccess;
   try
   {
    conNBar.Open();

    //cmdNBar = new OleDbCommand("Select * from hqcs_NavigationBarItems",conNBar);
    cmdNBar = new OleDbCommand();
    cmdNBar.CommandText = "SELECT * FROM hqcs_NavigationBarItems";   
    cmdNBar.Connection = conNBar;
    

    dapNBar = new OleDbDataAdapter(cmdNBar);
    dstNBar = new DataSet();
    dapNBar.Fill(dstNBar,"NavigationBar");

    dtvNBar = dstNBar.Tables["NavigationBar"].DefaultView;

    int nRecords = 0;
    nRecords = dstNBar.Tables["NavigationBar"].Rows.Count;
    Label1.Text = nRecords.ToString();
    

    dtgNBar.DataSource = dtvNBar;
    dtgNBar.DataBind();

    conNBar.Close();
   }
   catch(Exception ex)
   {
    Console.WriteLine(ex.Message);
   }
   
  }

  #region Web Form Designer generated code
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: This call is required by the ASP.NET Web Form Designer.
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  ///  Required method for Designer support - do not modify
  ///  the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {
   //this.ID = "dtgNBar";
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  
 }
}

 

接下来我想对代码进行一些优化,把连接数据库的字段写到web.config中去。

在web.config中添加了以下代码:

<appSettings>

<!-- the connect to database-->
<!-- connect to Access database -->
<add key = "connAccess" value = "Provider = Microsoft.Jet.OleDb.4.0; Data Source =D:/hqcs/DataSouce/hqcs.mdb"></add>
<!--connect to mssql2000-->
<add key="conSql" value="server=Localhost;UID=sa;PWD=sa; database=hqcs;"></add>


</appSettings>

然后再代码中去除原来的字段,加入以下代码:

using System.Configuration;

..............

   /*
   string strConnAccess = "Provider = Microsoft.Jet.OleDb.4.0;";
   strConnAccess += @"Data Source = D:/hqcs/DataSouce/hqcs.mdb";
   */

   string strConnAccess = ConfigurationSettings.AppSettings["connAccess"];

用来获得连接数据库的string。

(找到原因了)(又改了下,感觉有个最下面那块函数,应传入指针的指针)求求哪位大神给看看吧,为何注释部分放开竟然会出错,琢磨一天了啊,万分感谢!!!!!!!!!!!!!!!!!!!!

SharedPtr.h #pragma once #include #include using namespace std; class SharedPtr { public: friend ...

懒惰与粗心带来的问题两个

一 上午有同事在Eclipse下的tomcat始终启动不了,让我帮忙看看。 大概错误是这样的: Caused by: Bean type class com.opensymphony.xwork...

ACM 粗心永远AC不了系列——小Hi的烦恼|“五维数点”问题

问题来源:hiho一下第147周 小Hi的烦恼 题目1 : 小Hi的烦恼 时间限制:5000ms 单点时限:1000ms 内存限制:1024MB ...
  • The_sam
  • The_sam
  • 2017年04月29日 18:02
  • 125

LRM-00101: unknown parameter name 'location' LRM-00101: unknown parameter name 'valid_for' 粗心引起问题一例

今天在配置RAC-DG时,修改主库参数文件后无法用修改后的PFILE启动RAC主数据库,碰到了LRM-00101错误,这是一个语法错误,但是一开始始终没找到解决方法: SQL> create pfil...

ACM 粗心永远AC不了系列——Demo Day|三维DP问题,机器人寻路,hiho一下第150周

题目来源:https://hihocoder.com/contest/hiho150/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 ...
  • The_sam
  • The_sam
  • 2017年05月15日 13:13
  • 161

详细介绍使用PHP框架的原因(我感觉在没事的时候应该多多的搭建一些框架 用的时候直接搬过来用方便的很)

PHP框架为各种技术等级的开发者减少了重复编码的需求、加快了开发进程,并在创建web应用时确保正确的编码。这不仅加快了富应用开发的进程,同时也通过减少代码的安全漏洞而增强了PHP的安全性。 PHP成...

生活随笔:陪女友逛街好累!为什么女生爱购物?总算明白原因了!

如果问我陪女朋友干什么最痛苦,莫过于逛街!常常是一个商场从下到上,从里到外,足足能逛几个小时,而且平时娇弱的她这时候居然一点都不会觉得累,倒是我恨不得找个床躺那不动。累的要死的同时,我也十分费解:逛了...

抽象类+接口+内部类(有点晕 写的自己都感觉不太对)

1. 编写程序描述兔子和青蛙  需求说明:使用面向对象的思想,设计自定义类描述兔子和青蛙。 实现思路及关键代码 1) 分析兔子和青蛙的共性 2) 根据共性,定义抽象的动物类 属性:名字、颜色、类别(哺...

position属性absolute与relative 详解 最近一直在研究javascript脚本,熟悉DOM中CSS样式的各种定位属性,以前对这个属性不太了解,从网上找到两篇文章感觉讲得很透彻,

position属性absolute与relative 详解 最近一直在研究javascript脚本,熟悉DOM中CSS样式的各种定位属性,以前对这个属性不太了解,从网上找到两篇文章...

sql问题 感觉挺经典。

  • 2009年07月13日 14:54
  • 1004B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:总算找到了问题的原因了,爽,不过感觉自己太粗心了。
举报原因:
原因补充:

(最多只允许输入30个字)