gpt4 book ai didi

c# - 使用 C# 在数据 GridView 中更新时替换数据

转载 作者:行者123 更新时间:2023-11-29 05:03:14 30 4
gpt4 key购买 nike

enter image description here

上面的图像 0 和 1 来自数据库,同时在数据 GridView 中显示值 1 被替换为高,0 被替换为低 我不知道这有助于我解决这个问题

            con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select dataa from new";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();

最佳答案

您可以使用不同的解决方案处理案例,包括:

  • 使用 DataGridViewComboBoxColumn(→ 如果需要编辑则首选)
  • 使用 CellFormatting(→ 如果不需要编辑则首选)
  • 更改查询以返回格式化数据(→ 适用于只读数据)

选项 1 - 使用 DataGridViewComboBoxColumn

添加DataGridViewComboBoxColumn:

var c = new DataGridViewComboBoxColumn();
c.DataPropertyName = "Column1"; //Name of your data column
c.HeaderText = "Column1"; //Header text of your data column
c.DataSource = new[] {
new { Key = 0, Name = "Low" },
new { Key = 1, Name = "High" } }.ToList();
c.ValueMember = "Key";
c.DisplayMember = "Name";
c.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
//You can try other styles as well as setting `ReadOnly` to true
dataGridView1.Columns.Add(c);

选项 2 - 使用 CellFormatting

另一种选择是使用 CellFormatting 事件:

dataGridView1.CellFormatting += (obj, args) =>
{
try
{
var value = Convert.ToInt32(args.Value);
if (value == 0)
args.Value = "Low";
if (value == 1)
args.Value = "High";
return;
}
catch (Exception) { }
args.Value = "Unknown";
};

选项 3 - 更改查询

您可以更改查询以获取格式化数据,例如使用 CASE :

SELECT CASE [YourColumn] WHEN 1 THEN 'High' WHEN 2 THEN 'Low' END AS Column1
FROM [YourTable]

示例输出

对于以上所有代码,您可以从数据库加载数据或仅用于测试使用以下测试数据:*

var dt = new DataTable();
dt.Columns.Add("Column1", typeof(int));
dt.Rows.Add(1);
dt.Rows.Add(0);
dt.Rows.Add(0);
dt.Rows.Add(1);

并确保设置数据源:

dataGridView1.DataSource = dt;

enter image description here

关于c# - 使用 C# 在数据 GridView 中更新时替换数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53802549/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com