WPF отключает дублирование строк в Datagrid с помощью цикла foreach - PullRequest
0 голосов
/ 21 апреля 2019

Я хочу проверить каждую строку в несвязанной сетке данных, если значение ячейки равно значению текстового поля, а затем не добавлять строку

с использованием цикла foreach

проблема сейчас в том, что я использую несвязанную сетку данных и не могу использовать ItemSource в цикле foreach и если я запускаю код ниже, я получаю ошибку: System.InvalidCastException: 'Невозможно привести объект типа' MyMasrof 'к типу' System.Data.DataRow '.'

вот мой код:

 private void AddMaterial_btn_Click(object sender, RoutedEventArgs e)
        {
            if (Materials_Lookup.Text == null)
            {
                MessageBox.Show("Choose Item First");
            }
            else
            {
                if (Masrof_Grid.Items.Count > 0)
                {


                    foreach (System.Data.DataRow dr in Masrof_Grid.Items)
                    {

                        if (dr["Masrof_Material_Name"].ToString() == StoreName_txt.Text)
                        {
                            MessageBox.Show("Item Already Exist");
                        }
                        else
                        {
                            MySqlConnection conn2 = new MySqlConnection("DataSource='" + DoSomething.Server_Param + "';UserID='" + DoSomething.Uid_Param + "';Password='" + DoSomething.Password_Param + "';Database='" + DoSomething.Database_Param + "';PORT=3306;CHARSET=utf8");
                            conn2.Open();
                            MySqlCommand cmd = new MySqlCommand();
                            MySqlDataReader rd;
                            DataSet ds = new DataSet();

                            ds.Clear();
                            cmd.Connection = conn2;

                            cmd.CommandText = "SELECT id FROM Items where Item_Arabic_Name  ='" + Materials_Lookup.Text + "'";
                            rd = cmd.ExecuteReader();

                            if (rd.Read())
                            {

                                Masrof_Grid.Items.Add(new MyMasrof()
                                {
                                    Masrof_Material_Code = (rd["id"].ToString()),
                                    Masrof_Material_Name = Materials_Lookup.Text,
                                    Masrof_MAterial_QTY = QTY_txt.Text,
                                    Masrof_Material_Store = StoreName_txt.Text,
                                    MAterial_Curr_Balance = CurrBalance_txt.Text

                                });
                            }
                            else
                            {
                                MessageBox.Show("Cannot be found");
                            }


                            conn2.Close();
                        }
                    }
                }
                else
                {
                    MySqlConnection conn2 = new MySqlConnection("DataSource='" + DoSomething.Server_Param + "';UserID='" + DoSomething.Uid_Param + "';Password='" + DoSomething.Password_Param + "';Database='" + DoSomething.Database_Param + "';PORT=3306;CHARSET=utf8");
                    conn2.Open();
                    MySqlCommand cmd = new MySqlCommand();
                    MySqlDataReader rd;
                    DataSet ds = new DataSet();

                    ds.Clear();
                    cmd.Connection = conn2;

                    cmd.CommandText = "SELECT id FROM Items where Item_Arabic_Name  ='" + Materials_Lookup.Text + "'";
                    rd = cmd.ExecuteReader();

                    if (rd.Read())
                    {

                        Masrof_Grid.Items.Add(new MyMasrof()
                        {
                            Masrof_Material_Code = (rd["id"].ToString()),
                            Masrof_Material_Name = Materials_Lookup.Text,
                            Masrof_MAterial_QTY = QTY_txt.Text,
                            Masrof_Material_Store = StoreName_txt.Text,
                            MAterial_Curr_Balance = CurrBalance_txt.Text

                        });
                      //  decimal sum = 0m;
                      //  for (int i = 0; i < Masrof_Grid.Items.Count; i++)
                      //  {
                      //      sum += (decimal.Parse((Masrof_Grid.Columns[7].GetCellContent(Masrof_Grid.Items[i]) as TextBlock).Text));
                      //  }
                      ////  txtSumReal.Text = sum.ToString();
                    }
                    else
                    {
                        MessageBox.Show("cannot be found");
                    }


                    conn2.Close();
                }




            }




        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...