c#操作access,出现“内部错误: 无效的参数访问器: 2 BADBINDINFO”的解决办法
来源:互联网 发布:淘宝联盟软件推广赚钱 编辑:程序博客网 时间:2024/05/16 14:11
c#操作SQL数据库的常用代码片段如下:
/// <summary> /// 执行命令 /// </summary> /// <param name="procName">命令文本</param> /// <param name="prams">参数对象</param> /// <returns></returns> public int RunProc(string procName, SqlParameter[] prams) { SqlCommand cmd = CreateCommand(procName, prams); cmd.ExecuteNonQuery(); this.Close(); //得到执行成功返回值 return (int)cmd.Parameters["ReturnValue"].Value; }
/// <summary> /// 创建一个SqlCommand对象以此来执行命令文本 /// </summary> /// <param name="procName">命令文本</param> /// <param name="prams"命令文本所需参数</param> /// <returns>返回SqlCommand对象</returns> private SqlCommand CreateCommand(string procName, SqlParameter[] prams) { // 确认打开连接 this.Open(); SqlCommand cmd = new SqlCommand(procName, con); cmd.CommandType = CommandType.Text; //执行类型:命令文本 // 依次把参数传入命令文本 if (prams != null) { foreach (SqlParameter parameter in prams) cmd.Parameters.Add(parameter); } // 加入返回参数 cmd.Parameters.Add( new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null)); return cmd; }
如果把SQL换成access。相应代码只需要把sql类型换成OleDb类型即可。
c#操作access数据库的常用代码如下:
/// <summary> /// 执行命令 /// </summary> /// <param name="procName">命令文本</param> /// <param name="prams">参数对象</param> /// <returns></returns> public int RunProc(string procName, OleDbParameter[] prams) { OleDbCommand cmd = CreateCommand(procName, prams); cmd.ExecuteNonQuery(); this.Close(); //得到执行成功返回值 //return (int)cmd.Parameters["ReturnValue"].Value; return 1; }
/// <summary> /// 创建一个OleDbCommand对象以此来执行命令文本 /// </summary> /// <param name="procName">命令文本</param> /// <param name="prams"命令文本所需参数</param> /// <returns>返回OleDbCommand对象</returns> private OleDbCommand CreateCommand(string procName, OleDbParameter[] prams) { // 确认打开连接 this.Open(); OleDbCommand cmd = new OleDbCommand(procName, con); cmd.CommandType = CommandType.Text; //执行类型:命令文本 // 依次把参数传入命令文本 if (prams != null) { foreach (OleDbParameter parameter in prams) cmd.Parameters.Add(parameter); } // 加入返回参数 //cmd.Parameters.Add( // new OleDbParameter("ReturnValue", OleDbType.Integer, 4, // ParameterDirection.ReturnValue, false, 0, 0, // string.Empty, DataRowVersion.Default, null)); return cmd; }
由于access不需要返回值。因此CreateCommand函数里面不需要如下部分:
cmd.Parameters.Add( new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null));
如果不把该部分去掉,依然照搬操作SQL的代码。将出现报错“异常详细信息: System.InvalidOperationException: System.Data.OleDb.OleDbDataAdapter 内部错误: 无效的参数访问器: 2 BADBINDINFO。”
如果碰到类似错误,不妨按照上述的把返回值注释掉。
- c#操作access,出现“内部错误: 无效的参数访问器: 2 BADBINDINFO”的解决办法
- VMware Workstation出现“内部错误”的解决办法
- java 访问Access 出现的连接错误
- java sql 访问 access出现的错误
- paip.解决access出现 -2147467259 无效的参数量
- C#错误---线程间操作无效: 从不是创建控件"Form1"的线程访问它.
- php“内存位置访问无效”错误的解决办法
- 安装JDK包时出现 内部错误 2350 的解决办法
- VMWare启动虚拟机系统时,出现“内部错误”的解决办法
- C# OleDbConnection操作access出现System.Data.OleDb.OleDbException其他信息: 未指定的错误
- 登陆 SSH 出现 Access Denied 错误的解决办法
- Centos下Apache访问网站根目录下子目录出现You don't have permission to access错误的解决办法
- VB.NET 线程间操作无效错误的解决办法
- 28.6.2 访问OEM出现“安全连接失败,使用了无效的安全证书”错误
- Access数据库出现无效指针的解决方法。
- C# 线程操作 出现“从不是创建控件lstUser的线程访问它”错误的解决方法
- U-Boot中使用tftp下载文件出现错误TFTP error: 'Access violation' (2)的解决办法
- c#操作access,update语句不执行的解决办法
- spring 读取属性文件
- linq 2 xml 简单操作
- Python MySqlDB 增删修改数据库
- Linux 2.6.19.x 内核编译配置选项简介
- Open64业内外人士对LLVM和Open64的观点(转)
- c#操作access,出现“内部错误: 无效的参数访问器: 2 BADBINDINFO”的解决办法
- VS2008开发64位应用
- 批处理命令启动/停止Oracle服务
- 混淆 泛型 反射
- php的简单小总结
- 第四周第三天
- 套接字的属性
- 一个成功的Git分支模型
- 学习笔记(1)-常量:const与readonly区别