我正在处理库存系统,我设计了一个库存雕像表单,用于显示从数据库到数据网格视图的项目。
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");
}
}
答案 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)
{
}
}