DatagridView中的链接数据库

时间:2016-03-11 04:49:52

标签: c# sql datagridview

我正在处理库存系统,我设计了一个库存雕像表单,用于显示从数据库到数据网格视图的项目。

     mycon.Open();
     SqlCommand cmd2 = new SqlCommand("Select ItemName, LowStock, Quantity from Pharmacy_Items";, mycon);
     SqlDataAdapter ada2 = new SqlDataAdapter(cmd2);
     DataTable dt2 = new DataTable();

     ada2.Fill(dt2);
     datagridview.DataSource = dt2;
     mycon.Close();

现在我想在显示物品状态的数量旁边添加另一列,如果物料数量低于lowStock或等于lowStock然后在状态栏中应该是“低”,如果物料数量超过lowStock数量它应该写“好”。 具有“低”状态的项目应将其行颜色更改为红色。所以我们可以知道哪个项目处于低状态,我们必须订购库存。

我试过这个:

for (i =0; i < datagridview.Row.Count; i++)
{
  if( datagridview.Rows[i].Cells[1].Value >= datagridview.Rows[i].Cells[2].Value;
  {
   datagridview.Columns.Add("Low");
  }
   else
  {
   datagridview.Columns.Add("Ok");
  }
}

1 个答案:

答案 0 :(得分:0)

试试这个......

                mycon.Open();
                SqlCommand cmd2 = new SqlCommand("select ItemName, LowStock, Quantity, CASE when Quantity < LowStock then 'LOW' else 'OK' end as [Status]  from Pharmacy_Items", mycon);
                SqlDataAdapter ada2 = new SqlDataAdapter(cmd2);
                DataTable dt2 = new DataTable();

                ada2.Fill(dt2);
                dataGridView.DataSource = dt2;
                mycon.Close();

要更改行颜色,请使用CellFormatting事件,如此...

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        try
        {
            if (dataGridView1.Rows[e.RowIndex].Cells["Status"].Value.ToString() == "LOW")
                e.CellStyle.BackColor = Color.Red;
        }
        catch (Exception)
        {
        }
    }