我正在编写一个从TableAdapter填充数据类的方法。 [英] I am writting a method that populates a dataclass from a TableAdapter.

查看:66
本文介绍了我正在编写一个从TableAdapter填充数据类的方法。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在异常

Object of type System.Int32 cannot be converted to type System.Boolean



以下是方法.. 。




Below is the method...

public Model.PayrollEmpSalarySetup Get(string Record_Id)
        {
            Model.PayrollEmpSalarySetup iObject = null;
            DBManager dbManager = null;
            IDataReader iReader = null;
            string sql = string.Empty;

            try
            {
                sql = @"SELECT SALARY_SETUP_ID, EMP_NO, CREATE_DATE, FROM_DATE, TO_DATE, GROSS_SALARY, BASIC_SAL, HRA_SAL, MED_ALL_SAL, CONVEYANCE_SAL, 
                    OTHER_ALL_SAL, PF_SAL, PT_SAL, NET_SALARY, IS_ACTIVE, MARK_DELETED, LOGIN_ID, SYSTEM_IP,TRANS_TIME
                    FROM dbo.PAYROLL_EMPLOYEE_SALARY_SETUP WITH(NOLOCK) WHERE MARK_DELETED=0 AND EMP_NO=" + Record_Id;

                switch (Constants.DBEngine)
                {
                    case (int)DataProvider.SqlServer:
                        dbManager = new DBManager();
                        dbManager.ConnectionString = Constants.ConnectionString;
                        dbManager.ProviderType = DataProvider.SqlServer;
                        break;
                }
                dbManager.Open();
                dbManager.Command.CommandTimeout = Constants.CommandTimeOut;
                dbManager.Command.CommandText = sql;
                dbManager.Command.Connection = dbManager.Connection;
                iReader = dbManager.Command.ExecuteReader();
                iObject = iReader.SingleOrDefault<Model.PayrollEmpSalarySetup>();
            }
            catch (Exception Exp)
            {
                throw Exp;
            }
            finally
            {
                if (iReader != null)
                    iReader.Close();
                if (dbManager != null)
                    dbManager.Close();
            }
            return iObject;
        }

推荐答案

DataReader没有方法 SingleOrDefault< T>()。所以它必须是一种扩展方法。在这种情况下,显然将行值映射到 Model.PayrollEmpSalarySetup 的对象。其中一个映射不起作用,因为源列类型是Int32,目标成员类型是Boolean类型。您必须调整模型或数据库列。
A DataReader doesn't have a method SingleOrDefault<T>(). So it must be an extension method. Which apparently maps the row values to an object of Model.PayrollEmpSalarySetup in this case. And one of these mappings doesn't work because the source column type is of Int32 and the target member type is of type Boolean. You have to adjust either your model or the database column.


这篇关于我正在编写一个从TableAdapter填充数据类的方法。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆