Forums - C# Corner

Forum guidelines
Doudy

Doudy

  • 1.3k
  • 11
  • 9.2k

I got “System.Collections.Generic.List” instead of data

Dec 13 2012 1:06 PM

I tried to make a autoComplete textbox like google Search with C# in a WPF application, basically what I want to do is have a autocomplete textbox which is bound to a sql database table. the table has 2 fields(Barcode and Name),my code as below:


In XMAL :


Code Behind:


        List nameList;

        List prodList;

        public List SelProd4Sale(string str )

        {

            string constr = "Data Source=.;Initial Catalog=AgamistaStore;User ID=emad2012;Password=emad_2012";

            SqlConnection SqlCon = new SqlConnection(constr);

            SqlCommand SqlCmdProds = new SqlCommand();

            SqlCmdProds.Connection = SqlCon;

            SqlCmdProds.CommandType = CommandType.Text;

            SqlCmdProds.CommandText = "SELECT dbo.ProductsTbl.ProductID,ProductsTbl.ProductBarcode," +

                "dbo.ProductsTbl.ProductName, dbo.ProductsTbl.SalePrice FROM dbo.ProductsTbl ";

            SqlCon.Open();

            SqlDataAdapter dapProds = new SqlDataAdapter();

            dapProds.SelectCommand = SqlCmdProds;

            DataSet dsProds = new DataSet();

            dapProds.Fill(dsProds);

            SqlCon.Close();

            prodList = new List();

            for (int i = 0; i < dsProds.Tables[0].Rows.Count; i++)

            {

                prodList.Add(new Product

                                (dsProds.Tables[0].Rows[i]["ProductBarcode"].ToString(),

                                dsProds.Tables[0].Rows[i]["ProductName"].ToString());

            }

            dsProds = null;

            nameList = new List()

            {

               prodList.ToString()

            };

            return nameList;

        }

        public Window2()

        {

            InitializeComponent();

            SelProd4Sale(txtCAuto.Text);

            txtCAuto.TextChanged += new TextChangedEventHandler(txtAuto_TextChanged);

        }

        #region TextBox-TextChanged-txtAuto

        private void txtAuto_TextChanged(object sender, TextChangedEventArgs e)

        {

            string typedString = txtCAuto.Text.ToUpper();

            List autoList = new List();

            autoList.Clear();

            foreach (string item in nameList)

            {

                if (!string.IsNullOrEmpty(txtCAuto.Text))

                {

                    if (item.StartsWith(typedString))

                    {

                        autoList.Add(item);

                    }

                }

            }

            if (autoList.Count > 0)

            {

                lbSuggestion.ItemsSource = autoList;

                lbSuggestion.Visibility = Visibility.Visible;

            }

            else if (txtCAuto.Text.Equals(""))

            {

                lbSuggestion.Visibility = Visibility.Collapsed;

                lbSuggestion.ItemsSource = null;

            }

            else

            {

                lbSuggestion.Visibility = Visibility.Collapsed;

                lbSuggestion.ItemsSource = null;

            }

        }

        #endregion

        #region ListBox-SelectionChanged-lbSuggestion

        private void lbSuggestion_SelectionChanged(object sender, SelectionChangedEventArgs e)

        {

            if (lbSuggestion.ItemsSource != null)

            {

                lbSuggestion.Visibility = Visibility.Collapsed;

                txtCAuto.TextChanged -= new TextChangedEventHandler(txtAuto_TextChanged);

                if (lbSuggestion.SelectedIndex != -1)

                {

                    txtCAuto.Text = lbSuggestion.SelectedItem.ToString();

                }

                txtCAuto.TextChanged += new TextChangedEventHandler(txtAuto_TextChanged);

            }

        }

        #endregion

    }

    class Product

    {

        private string _ProductBarcode = "";

        private string _ProductName = "";

        public Product(string prodName,string prodBarcode)

        {

            this._ProductBarcode = prodBarcode;

            this._ProductName = prodName;

        }

        public string ProductBarcode

        {

            get { return _ProductBarcode; }

            set { _ProductBarcode = value; }

        }

        public string ProductName

        {

            get { return _ProductName; }

            set { _ProductName = value; }

        }

    }

When I run this I got "System.Collections.Generic.List" as result instead of data.

Can somebody help me please & tell me what 's wrong?

Thanks.


Answers (3)

techbash 2016

SPONSORED BY

C# Corner Chandigarh DevCon16
Chandigarh DevCon16 is a one-day Developer Conference where programmers, technologists, authors, and members meet, demonstrate, plan, and hang out.