Я не получаю никаких данных из базы данных - PullRequest
0 голосов
/ 18 июня 2020

Я попытался извлечь данные из базы данных, но мне не удалось получить данные в l oop, X и Y возвращают "" значение даже после того, как dr получает правильное значение (я планирую построить график значений x и y в карте):

    private void Map_it_Click( object sender, EventArgs e)
    {

            string Code = "";
            string strReturn = "";
            string X = "";
            string Y = "";

            var opt = "";
            List<CompanyDeat> listerrg = new List<CompanyDeat>();
            try
            {

                int name = 1;


                string ConStr = "";

                DataSet ds = new DataSet();

                ConStr = "Server=127.0.0.1; Port=5433; User Id=xxxx; Password=xxxxx; Database=xxxxx";

                using (NpgsqlConnection con = new NpgsqlConnection(ConStr))
                {

                    using (NpgsqlCommand cmd = new NpgsqlCommand("complete", con))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        NpgsqlDataAdapter da = new NpgsqlDataAdapter();

                        da.SelectCommand = cmd;
                        da.Fill(ds);
                    }
                }


                string errmsg = "";

                if (errmsg != "")
                {
                    Code = "0"; strReturn = errmsg;
                }
                else
                {
                    if (ds.Tables.Count > 0)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            Code = "1";

                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            listerrg.Add(new CompanyDeat

                            {

                                X = dr["X"].ToString(),

                                Y = dr["Y"].ToString(),


                            });
                            map.DragButton = MouseButtons.Left;
                            map.MapProvider = GMapProviders.GoogleMap;
                            double lat = Convert.ToDouble(X);
                            double lon = Convert.ToDouble(Y);
                            map.Position = new PointLatLng(lat, lon);
                            map.MinZoom = 5;
                            map.MaxZoom = 100;
                            map.Zoom = 10;
                        }



                            if (strReturn == "1")
                            {
                                Console.Write("Updated");
                            }

                        }
                        //TripDT = TripDT.ToShortDateString();
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return;




    }

Но данные достигают dr, но значение X и Y становится "" даже после назначения данных tp X и Y:

 ItemArray = {object[2]}
    18.0579309901531
    55.1186577950593

внутренний класс:

internal class CompanyDeat
    {
        public string X { get; set; }
        public string Y { get; set; }

    }

postgresql код:

CREATE OR REPLACE FUNCTION complete() 
    RETURNS TABLE( X varchar,Y varchar) as
$BODY$   
    select "X","Y" from public.point ;

$BODY$
      LANGUAGE sql;

Пожалуйста, помогите, мне нужно завершить его очень скоро

1 Ответ

0 голосов
/ 18 июня 2020

Предполагается, что у вас есть данные в ds.Table [0]

List<CompanyDeat> target = ds.Table[0].AsEnumerable()
    .Select(row => new CompanyDeat
    {
        X= row.Field<string>(0),
        Y = row.Field<string>(1),
    }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...