C#dataGridView不显示我希望它显示的信息

本文关键字:显示 信息 我希望 C#dataGridView | 更新日期: 2023-09-27 18:23:48

我有两个dataGridView表。一个是供应商,第二个是产品。我希望他们这样工作:当我点击供应商数据网格视图中的行时,在产品数据网格视图中将只显示所选供应商的产品。这是我为此目的编写的函数:

static public void SuppliersProducts(DataGridView _productslist)
   {
       try
       {
           connection.Open();
           SqlCommand commandShow = new SqlCommand("SELECT a.Name FROM Products a INNER JOIN SuppliersProducts b ON a.Id = b.ProductId WHERE b.SupplierId = @SupplierId", connection);
           DataGridViewRow dr1 = _productslist.SelectedRows[0];
           commandShow.Parameters.AddWithValue("@SupplierId", dr1.Cells[0].Value);
           commandShow.ExecuteNonQuery();
       }
       catch (SqlException exception)
       {
           MessageBox.Show(exception.ToString());
       }
       finally
       {
           connection.Close();
       }
   }

我在dataGridView1_CellMouseClick:中使用它

 private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        SuppliersProducts(ProductsList);
    }

其中ProductsList是我的产品表的dataGridView。问题是,它没有抛出任何错误,但当我在第一个dataGridView表中点击某个供应商时,第二个表没有发生任何错误。我做错了什么?

C#dataGridView不显示我希望它显示的信息

您可以这样做:

CellMouseClick事件更改为CellClick,因为当任何鼠标按钮单击单元格时,CellMouseClick都会激发

sql server的数据应该存储在的某个地方

和ExecuteNonQuery()用于插入、删除、更新和不返回数据的命令

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        SuppliersProducts(ProductsList,e.RowIndex);
    }

static public void SuppliersProducts(DataGridView _productslist,int index)
   {
       try
       {
           connection.Open();
           string commandShow=String.Format("SELECT a.Name FROM Products a INNER JOIN SuppliersProducts b ON a.Id = b.ProductId WHERE b.SupplierId = {0}",_productslist.Rows[index].Cells[0].Value));
           //Stroing sql server data
          var dt = new DataTable();
          using (var da = new SqlDataAdapter(commandShow, connection))
              da.Fill(dt);
           foreach(DataRow row in dt.Rows)
           {
                dataGridView2.Rows.Add(row[0],...);
           }
       }
       catch (SqlException exception)
       {
           MessageBox.Show(exception.ToString());
       }
       finally
       {
           connection.Close();
       }
   }