问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.net使用access数据库 为什么刷新网站时候老是报错

发布网友 发布时间:2022-04-11 22:36

我来回答

4个回答

懂视网 时间:2022-04-12 02:57

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.OleDb;namespace JonseTool{ public abstract class AccessHelper { // string s = Application.StartupPath.Replace(@inDebug

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using System.Data.OleDb;

namespace JonseTool
{
 public abstract class AccessHelper
 {
  // string s = Application.StartupPath.Replace(@"inDebug", "") + @"Data#test.mdb";
  ////JonseTool.AccessHelper.ConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + s + @";Persist Security Info=false;User Id=admin;Password=";
  //JonseTool.AccessHelper.ConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + s + @";";

 public static string _sConnString = string.Empty;
 public static string ConnString
 {
  get{return _sConnString;}
  set{_sConnString = value;}
 }

 public static bool TestConn(string sConnStr="")
 {
  OleDbConnection myConn = null;
  bool bResult = false;
  try
  {
  if (string.IsNullOrEmpty(sConnStr)) sConnStr = _sConnString;
  myConn = new OleDbConnection(_sConnString);
  myConn.Open();
  }
  catch (Exception ex)
  {
  }
  finally
  {
  if (myConn != null && myConn.State.ToString() == "Open")
   bResult = true;
  }

  myConn.Close();

  return bResult;
 }

 public static DataTable GetDataTable(out string sErr, string sSQL,string sConnStr="",params OleDbParameter[] cmdParams)
 {
  DataTable dt = null;
  sErr = string.Empty;

  if (string.IsNullOrEmpty(sConnStr)) sConnStr = _sConnString;

  OleDbConnection accConn = null;
  try
  {
  accConn = new OleDbConnection(sConnStr);
  OleDbCommand accCmd = new OleDbCommand(sSQL, accConn);
  accConn.Open();

  if (cmdParams != null) 
  {
   foreach (OleDbParameter parm in cmdParams)
   accCmd.Parameters.Add(parm); 
  }
 
  OleDbDataAdapter adapter = new OleDbDataAdapter(accCmd);
  dt = new DataTable();
  adapter.Fill(dt);
  accConn.Close();
  }
  catch (Exception ex)
  {
  sErr = ex.Message;
  }
  return dt;
 }

 // 取dataset 
 public static DataSet GetDataSet(out string sError, string sSQL, string sConnStr = "", params OleDbParameter[] cmdParams)
 {
  DataSet ds = null;
  sError = string.Empty;
  try
  {
  if (string.IsNullOrEmpty(sConnStr)) sConnStr = _sConnString;

  OleDbConnection conn = new OleDbConnection(sConnStr);
  conn.Open();
  OleDbCommand cmd = new OleDbCommand();
  cmd.Connection = conn;
  cmd.CommandText = sSQL;

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

  OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
  ds = new DataSet();
  dapter.Fill(ds);
  }
  catch (Exception ex)
  {
  sError = ex.Message;
  }
  return ds;
 }

 // 取某个单一的元素 
 public static object GetSingle(out string sError, string sSQL,string sConnStr)
 {
  DataTable dt = GetDataTable(out sError, sSQL,sConnStr);
  if (dt != null && dt.Rows.Count > 0)
  {
  return dt.Rows[0][0];
  }

  return null;
 }

 // 取最大的ID 
 public static Int32 GetMaxID(out string sError, string sKeyField, string sTableName,string sConnStr=null)
 {
  DataTable dt = GetDataTable(out sError, "select iif(isnull(max([" + sKeyField + "])),0,max([" + sKeyField + "])) as MaxID from [" + sTableName + "]", sConnStr);
  if (dt != null && dt.Rows.Count > 0)
  {
  return Convert.ToInt32(dt.Rows[0][0].ToString());
  }

  return 0;
 }

 // 执行 insert,update,delete 动作,也可以使用事务 
 public static bool UpdateData(out string sError, string sSQL,string sConnStr="",OleDbParameter[] cmdParams = null, bool bUseTransaction = false)
 {
  int iResult = 0;
  sError = string.Empty;
  if (string.IsNullOrEmpty(sConnStr)) sConnStr = _sConnString;

  if (!bUseTransaction)
  {
  try
  {
   OleDbConnection conn = new OleDbConnection(sConnStr);
   if (conn.State != ConnectionState.Open)
   conn.Open();
   OleDbCommand cmd = new OleDbCommand();
   cmd.Connection = conn;
   cmd.CommandText = sSQL;

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

   iResult = cmd.ExecuteNonQuery();
  }
  catch (Exception ex)
  {
   sError = ex.Message;
   iResult = -1;
  }
  }
  else // 使用事务 
  {
  OleDbTransaction trans = null;
  try
  {
   OleDbConnection conn = new OleDbConnection(sConnStr);
   if (conn.State != ConnectionState.Open)
   conn.Open();
   trans = conn.BeginTransaction();
   OleDbCommand cmd = new OleDbCommand();
   cmd.Connection = conn;
   cmd.CommandText = sSQL;

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

   cmd.Transaction = trans;
   iResult = cmd.ExecuteNonQuery();
   trans.Commit();
  }
  catch (Exception ex)
  {
   sError = ex.Message;
   iResult = -1;
   trans.Rollback();
  }
  }

  return iResult > 0;
 } 
 
 }
}


示意图:

热心网友 时间:2022-04-12 00:05

DBFun.cs应该是数据操作类,这出问题应该先检查一下连接语句
还要检查一下Access数据库所在目录权限

热心网友 时间:2022-04-12 01:23

这个和数据库没有关系 是你程序的问题

热心网友 时间:2022-04-12 02:58

你程序写的不对吧,把代码贴出来看看
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
南南京到许昌的公共汽车票 南京去句容需要多久 南京到单县汽车票多少钱 八月十一号南京到高密的汽车票提前几天买 外省保育员证在广东能领到补贴吗 外省的保育员资格证可以在深圳申请补贴吗 广州保育员证在深圳可以申请从教津贴吗 广州的保育师证能在深圳用吗 很走心的干净短句,具有治愈能力的句子 社会很现实的哲理句子太经典了 请问有没有较完善的access数据库操作类代码呢?我找了很多都用不了,谢谢。 在access中查询如何删除一个指定字段 急!!Access全国计算机二级考试的题目求解。如何删除有条件要求的记录呢(比如要求删除1975-1980出生) Access中,要删除表中某个字段中所有为10月的日期的函数关系是怎么写 access中怎么用查询删除某列除了指定值以外的其他记录? access删除查询中,如果想要删除一个字段中值最小的那条记录,条件该怎么写? 在access中,怎样删除不满足某条件的记录 access如何删除某一字段中的一个记录 access 怎么删除多个表中同一项 某一行记录 比如我要把这两张表中的F000045950 这多行数据删除 该怎么弄 vb删除access中符合条件的记录 nginx 日志50g怎么切割 nginx日志切割脚本,手动执行没问题,计划任务执行得到的日志文件为空,请问这是什么问题啊 军哥,是否可以参考张宴的博客吧NGINX的日志切割功能加上 nginx几百兆的日志怎么切割?切割工具一开就死。我没权限在服务器上切割。 nginx服务器 日志怎么分开存放呢 Linux下Nginx如何切割访问日志? nginx日志切割脚本怎么运行 spring security需要登录后才能访问的路径的权限配置是怎么样的 Spring中Bean扩展模式有哪些? jenkins 配置ldap问题 利用access打开db数据库怎么做? C#,与Access数据库问题.请指点 archlinux 安装完以后重启出现can‘t access tty job control tuned off 用SuperOneClick.exe对手机进行root,过程中总出现busybox was not found ,如何破? fedora安装出现 Dropping to debug shell sh:can't access tty; job control turned off dracut:/# 怎么办 linux启动提示can't access tty,job control turned off。请问如何解决? HTC野火刷机用android2.3 一键ROOT工具出现的busybox和su文件导入不进system的bin目录下,请刷机大虾看看 威盛M800为什么装不了ubuntu7.04,总是出现 "/bin/sh: can't access tty : job control turned off" 安装veket失败 Linux命令cp命令在部分安卓手机上不能用,显示没有cp的命令,sh:cp not found linux跟文件系统执行非busybox 命令报错! 如:# ./arm-test 提示 -sh: ./arm-test: input/output error ubuntu 12.0.4编译busybox出错,求解答 s7562无法root 我用的是DooMLoRD_v4_ROOT-zergRush-busybox-su 哪位大神帮我翻译一下 Android开发问题:Failed to install Hello.apk on device 'emulator-5554! 红米2的busybox在哪个位置 制作linux根文件系统时编译busyboxs后生成的_install/bin/sh内容怎么说乱码呀 system/bin/sh:su:not found shell@android:/$ 这是怎么回 如何破解WPA/WPA2保护的Wifi 怎么样才能破解wPA/wpA2 ask加密的wiFI 如何破无线WIFI WPA /WPA2密码