首页 > 解决方案 > 在 HTTP GET 上使用 Oracle DB 在 Asp.net Web API 中处理来自 DB 的空值

问题描述

我正在尝试使用 Web api 从 Oracle 表中获取所有值。

当 oracle 表中的列没有空值时,Get 工作正常

但当表中的任何列为空时返回 http 500。有没有办法在不使用程序的情况下处理这个问题?以下是我正在使用的方法,如果可能的话,希望保持逻辑相同。任何建议表示赞赏。

[HttpGet]
        [ActionName("GetData")]
        public object Get()
        {
            List<SelectData> TestList = new List<SelectData>();
            string connStr = ConfigurationManager.AppSettings.Get("ConnStr");

            using (var conn = new OracleConnection(connStr))
            {
                conn.Open();
                OracleCommand cmd = new OracleCommand();
                cmd.CommandText = "select * from DB_DATA";
                cmd.Connection = conn;
                OracleDataReader dr = cmd.ExecuteReader();
                SelectData ListObject = new SelectData();

                while (dr.Read())
                {
                   //Error if any of these are null

                    ListObject.DATA_ID = dr.GetInt32(0);                   
                    ListObject.Name = dr.GetString(1);
                    ListObject.LastName = dr.GetString(2);
                    ListObject.COMMENTS = dr.GetString(3);
                    ListObject.Address = dr.GetString(4);

                    TestList.Add(ListObject);
                }
                conn.Close();
            }
            return TestList;
        }

标签: c#oracleasp.net-web-apiasp.net-web-api2

解决方案


推荐阅读