当前位置:编程学习 > C#/ASP.NET >>

求助解决方法:数据库无法打开怎么解决,提示未指定的错误

代码是通过傻瓜化绑定的:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AdminID"
            DataSourceID="AccessDataSource1">
            <Columns>
                <asp:BoundField DataField="AdminID" HeaderText="AdminID" ReadOnly="True" SortExpression="AdminID" />
                <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
                <asp:BoundField DataField="PassWd" HeaderText="PassWd" SortExpression="PassWd" />
                <asp:BoundField DataField="Purview" HeaderText="Purview" SortExpression="Purview" />
                <asp:BoundField DataField="Question" HeaderText="Question" SortExpression="Question" />
                <asp:BoundField DataField="Answer" HeaderText="Answer" SortExpression="Answer" />
                <asp:BoundField DataField="Sex" HeaderText="Sex" SortExpression="Sex" />
                <asp:BoundField DataField="YouXiang" HeaderText="YouXiang" SortExpression="YouXiang" />
                <asp:BoundField DataField="JingYong" HeaderText="JingYong" SortExpression="JingYong" />
                <asp:BoundField DataField="UpdateTime" HeaderText="UpdateTime" SortExpression="UpdateTime" />
                <asp:BoundField DataField="Logins" HeaderText="Logins" SortExpression="Logins" />
                <asp:BoundField DataField="LastLogin" HeaderText="LastLogin" SortExpression="LastLogin" />
            </Columns>
        </asp:GridView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/news2008.mdb"
            SelectCommand="SELECT * FROM [DB_Admin]"></asp:AccessDataSource>
错误



未指定的错误 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[OleDbException (0x80004005): 未指定的错误]
   System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +1054961
   System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +53
   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +27
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +47
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
   System.Data.OleDb.OleDbConnection.Open() +37
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +121
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +137
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1770
   System.Web.UI.WebControls.AccessDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +74
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
   System.Web.UI.WebControls.GridView.DataBind() +4
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.PreRenderRecursiveInternal() +41
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

 

--------------------编程问答-------------------- 加上everyone的读写权限 --------------------编程问答-------------------- 加了没用! --------------------编程问答--------------------
引用 2 楼 zpw85 的回复:
加了没用!

把你数据库连接代码发出来看看 --------------------编程问答-------------------- 参考: OleDbException (0x80004005):未指定的错误 
--------------------编程问答--------------------  private static String connstr = ("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["ConnectionString"].ToString()));
        private static OleDbCommand cmd = null;
        private static OleDbDataReader dr = null;
        public static OleDbConnection txt = new OleDbConnection(connstr);
        public SqlProvider() { }
        #region 检测查询是否为空
        public static bool Check(string sqltxt)
        {
            int nreturn = 0;
            try
            {
                using (OleDbConnection cn = new OleDbConnection(connstr))
                {
                    cmd = cn.CreateCommand();
                    cmd.CommandText = sqltxt;

                    cn.Open();

                    dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        nreturn++;
                        if (nreturn > 0)
                            break;
                    }
                    if (dr != null)
                        dr.Close();
                    if (cn != null)
                        cn.Close();
                }
            }
            catch
            {
                throw new ArgumentException("err");
            }

            if (nreturn > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 查询数据条数
        public static int CheckPage(string sqltxt)
        {
            int nreturn = 0;
            try
            {
                using (OleDbConnection cn = new OleDbConnection(connstr))
                {
                    cmd = cn.CreateCommand();
                    cmd.CommandText = sqltxt;
                    cn.Open();
                    dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        nreturn++;
                    }
                    if (dr != null)
                        dr.Close();
                    if (cn != null)
                        cn.Close();
                }

            }
            catch
            {
                throw new ArgumentException("err");
            }
            return nreturn;
        }
        #endregion

        #region ExecuteScalar方法
        public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
        {

            OleDbCommand cmd = new OleDbCommand();

            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;

        }
        #endregion

        #region 获取返回字符串
        public static string GetClassName(string sql)
        {
            string ClassName;
            try
            {
                using (OleDbConnection cn = new OleDbConnection(connstr))
                {

                    cn.Open();
                    object myobj = ExecuteScalar(cn, CommandType.Text, sql, null);
                    ClassName = myobj.ToString();
                }
            }
            catch
            {
                throw new ArgumentException("err");
            }
            return ClassName;
        }
        #endregion

        #region 获取dataset
        public static DataSet ExecuteDataset(string sqltxt)
        {
            DataSet ds = new DataSet();
            try
            {
                using (OleDbConnection cn = new OleDbConnection(connstr))
                {

                    cmd = cn.CreateCommand();
                    cmd.CommandText = sqltxt;
                    cn.Open();
                    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                    da.Fill(ds);
                    cmd.Parameters.Clear();
                    if (cn != null)
                        cn.Close();

                }

                return ds;
            }
            catch
            {
                throw new ArgumentException("err");
            }
        }

        #endregion

        #region 添加 删除 修改
        public static int ExecuteNonQuery(string sqltxt)
        {
            //try
            //{
            using (OleDbConnection cn = new OleDbConnection(connstr))
            {

                cmd = cn.CreateCommand();
                cmd.CommandText = sqltxt;
                cn.Open();
                int retval = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                if (cn != null)
                    cn.Close();
                return retval;
            }

            //}
            //catch
            //{
            //    throw new ArgumentException("err");
            //}

        }
        #endregion

        #region 获取Dictionary
        public static Dictionary<string, string> Check(string sqltxt, Dictionary<string, string> param)
        {
            Dictionary<string, string> Reparam = new Dictionary<string, string>();
            int nreturn = 0;
            try
            {
                using (OleDbConnection cn = new OleDbConnection(connstr))
                {
                    cmd = cn.CreateCommand();
                    cmd.CommandText = sqltxt;
                    cn.Open();
                    dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {

                        nreturn++;
                        foreach (string str in param.Values)
                        {
                            Reparam.Add(str, dr[str] as string);
                        }
                        if (nreturn > 0)
                            break;
                    }
                    if (dr != null)
                        dr.Close();
                    if (cn != null)
                        cn.Close();
                }
            }
            catch
            {
                throw new ArgumentException("err");
            }
            return Reparam;

        }
        #endregion

        #region 为执行命令准备参数 OleDbCommand 命令
        private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
        {

            //判断数据库连接状态
            if (conn.State != ConnectionState.Open)
                conn.Open();

            cmd.Connection = conn;
            cmd.CommandText = cmdText;

            //判断是否需要事物处理
            if (trans != null)
                cmd.Transaction = trans;

            cmd.CommandType = cmdType;

            if (cmdParms != null)
            {
                foreach (OleDbParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);

            }
        }
        #endregion --------------------编程问答-------------------- 确定连接成功了吗? --------------------编程问答-------------------- 可定前一天还用了,第二天就坏了!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,