锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#编程访问Access数据库常见错误
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

C#编程访问Access数据库常见错误


Insert into错误

用OleDbCommand执行insert into语句,报错,把SQL语句拷贝到Access内执行可以,后来查到特殊字段名前要带[],比如memo,至于哪些符号名称算是特殊的,估计要查Access的帮助。

IErrorInfo.GetDescription 0x80004005

表名是特殊符号,比如表名section,也要加[]。

参数 没有默认值

有些字段写入时报这个错误,在Access表设计里也是允许空的,但是还报错。这里是空值理解错误,如果数值为空,要转换为数据库范畴的空值,下面提供了个函数进行转换:

        public  static object  SqlNull(object obj)
        {
            if (obj == null || obj.ToString() == "")
            {
                return DBNull.Value;
            }
            else
            {
                return obj;
            }
        }

获取自增id失败

用select @@identity来获取失败,sql语句没问题,但是一直获取的是0,后来想到没用和insert into语句相同的连接,上个连接关闭了就获取不到了。

下面是简单三层下的获取自增代码

        public  static int  ExecuteSqlWithID(string SQLString, params OleDbParameter[]  cmdParms)
        {
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                using (OleDbCommand cmd = new OleDbCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                        PrepareCommand(cmd, connection, null, "select @@IDENTITY as id",null);
                        object obj = cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return -1;
                        }
                        else
                        {
                            return int.Parse(obj.ToString());
                        }

                    }
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message); }
return -1;
}
}
}

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内