Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据数字更改数据网格中单元格的值_C#_Winforms_Datagridview - Fatal编程技术网

C# 根据数字更改数据网格中单元格的值

C# 根据数字更改数据网格中单元格的值,c#,winforms,datagridview,C#,Winforms,Datagridview,我试图将网格中的数字转换为文本。根据单元格中的值,我将获得另一个文本。 如果值=0则应显示“inkomst”,如果值=1则应显示“uitGiven” 我已经有了显示正确行和设置宽度的代码 private void updateAll() { dataGridViewInkomsten.DataSource = blFinancien.getFinancienByInkomsten(); //kolommen niet tonen waarin enkel id's worden

我试图将网格中的数字转换为文本。根据单元格中的值,我将获得另一个文本。 如果
值=0
则应显示
“inkomst”
,如果
值=1
则应显示
“uitGiven”

我已经有了显示正确行和设置宽度的代码

private void updateAll()
{
    dataGridViewInkomsten.DataSource = blFinancien.getFinancienByInkomsten();

    //kolommen niet tonen waarin enkel id's worden getoond
    dataGridViewInkomsten.Columns[0].Visible = false;
    dataGridViewInkomsten.Columns[1].Visible = false;
    dataGridViewInkomsten.Columns[2].Visible = false;
    dataGridViewInkomsten.Columns[8].Visible = false;

    dataGridViewInkomsten.Columns[6].HeaderText = "Inkomst/uitgave";

    int breedtevankolommen = dataGridViewInkomsten.Width / 5;
    dataGridViewInkomsten.Columns[3].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[4].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[5].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[6].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[7].Width = breedtevankolommen;
}
现在,根据第六列中的int值,我应该得到
“Inkomst”
“uitgeed”
。 我还有一个打印屏幕,所以你明白我的意思


有谁能告诉我如何做到这一点吗?

编辑您要绑定网格的查询

包括大小写,如下所示:

CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END

select col1,col2,(CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END) as lnkomst/uitgave  from tablename
select col1,col2,lnkomst/uitgave = Switch(
    NUMREG=0,'lnkomst',
    NUMREG=1,'uitgave');  from tablename
这样写查询

编辑访问权限:

CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END

select col1,col2,(CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END) as lnkomst/uitgave  from tablename
select col1,col2,lnkomst/uitgave = Switch(
    NUMREG=0,'lnkomst',
    NUMREG=1,'uitgave');  from tablename

希望有帮助。

编辑您要绑定网格的查询

包括大小写,如下所示:

CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END

select col1,col2,(CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END) as lnkomst/uitgave  from tablename
select col1,col2,lnkomst/uitgave = Switch(
    NUMREG=0,'lnkomst',
    NUMREG=1,'uitgave');  from tablename
这样写查询

编辑访问权限:

CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END

select col1,col2,(CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END) as lnkomst/uitgave  from tablename
select col1,col2,lnkomst/uitgave = Switch(
    NUMREG=0,'lnkomst',
    NUMREG=1,'uitgave');  from tablename

希望有帮助。

将数据保存到数据库后,使用
datagridview.rows[].cells[].value

将数据保存到数据库中后,使用
datagridview.rows[].cells[].value

有几种方法可以做到这一点

  • 您可以在SQL查询中编写开关大小写,并设置所需的文本

  • 也可以在网格中添加另一列。说第二栏。隐藏实际列,如COLUMN1。
    然后,在网格单元格式化事件(或任何类似事件)中,可以根据实际列(列1)中的值设置此列(列2)的文本

    专用子网格格式(发送方,e) { if(grid.Rows(e.RowIndex).Cells(“COLUMN1”).Text==“0”) grid.Rows(e.RowIndex).Cells(“COLUMN2”).text=“value1” else(grid.Rows(e.RowIndex).Cells(“COLUMN1”).Text==“1”) grid.Rows(e.RowIndex).Cells(“COLUMN2”).text=“value2” }

  • 实际上,您应该在域模型中对UI进行这种格式化,然后将域模型绑定到网格。这是在您从数据库获取数据之后


  • 有几种方法可以做到这一点

  • 您可以在SQL查询中编写开关大小写,并设置所需的文本

  • 也可以在网格中添加另一列。说第二栏。隐藏实际列,如COLUMN1。
    然后,在网格单元格式化事件(或任何类似事件)中,可以根据实际列(列1)中的值设置此列(列2)的文本

    专用子网格格式(发送方,e) { if(grid.Rows(e.RowIndex).Cells(“COLUMN1”).Text==“0”) grid.Rows(e.RowIndex).Cells(“COLUMN2”).text=“value1” else(grid.Rows(e.RowIndex).Cells(“COLUMN1”).Text==“1”) grid.Rows(e.RowIndex).Cells(“COLUMN2”).text=“value2” }

  • 实际上,您应该在域模型中对UI进行这种格式化,然后将域模型绑定到网格。这是在您从数据库获取数据之后

  • 试试这个:

    SqlCeCommand cmd = new SqlCeCommand();
    SqlCeConnection conn = new SqlCeConnection("connString");
    cmd.Connection = conn;
    cmd.CommandText = "SELECT COUNT(*) FROM yourTable";
    var count = cmd.ExecuteScalar();
    
    for (int i = 0; i <= int.Parse(count.ToString()); i++)
    {
         if (dataGridViewCategories.Rows[i].Cells["cellName"].Value.ToString() == "0")
         {
            dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Inkomst";
         }
         else
         {
            dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Uitgave";
         }
    }
    
    SqlCeCommand cmd=newsqlcecommand();
    SqlCeConnection conn=新的SqlCeConnection(“connString”);
    cmd.Connection=conn;
    cmd.CommandText=“从表格中选择计数(*)”;
    var count=cmd.ExecuteScalar();
    对于(int i=0;i请尝试以下方法:

    SqlCeCommand cmd = new SqlCeCommand();
    SqlCeConnection conn = new SqlCeConnection("connString");
    cmd.Connection = conn;
    cmd.CommandText = "SELECT COUNT(*) FROM yourTable";
    var count = cmd.ExecuteScalar();
    
    for (int i = 0; i <= int.Parse(count.ToString()); i++)
    {
         if (dataGridViewCategories.Rows[i].Cells["cellName"].Value.ToString() == "0")
         {
            dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Inkomst";
         }
         else
         {
            dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Uitgave";
         }
    }
    
    SqlCeCommand cmd=newsqlcecommand();
    SqlCeConnection conn=新的SqlCeConnection(“connString”);
    cmd.Connection=conn;
    cmd.CommandText=“从表格中选择计数(*)”;
    var count=cmd.ExecuteScalar();
    
    对于(int i=0;i首先创建单元样式:

     System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
     dataGridViewCellStyle1.Format = "One;\'\';Zero";
     dataGridViewCellStyle1.NullValue = null;
    
    然后将单元格样式应用于动态列:

     dataGridViewInkomsten.Columns[6].DefaultCellStyle = dataGridViewCellStyle1;
    

    这样就可以了。

    首先创建单元格样式:

     System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
     dataGridViewCellStyle1.Format = "One;\'\';Zero";
     dataGridViewCellStyle1.NullValue = null;
    
    然后将单元格样式应用于动态列:

     dataGridViewInkomsten.Columns[6].DefaultCellStyle = dataGridViewCellStyle1;
    


    这应该可以做到。

    当你在数据库中保存记录时,检查文本框的值,如果它为0,则将Inkmost存储在数据库中。这就是我认为没有什么需要问的。这是最基本的事情,但不是:你应该用英语编码,即使你正在编写荷兰程序。图恩:我的老师不允许,这就是为什么,但是的,大部分是可读的,eRaman:它应该存储在int中,这样更安全&按照规则:当你在db中保存记录时,检查文本框的值,如果它为0,则将Inkmost存储在db中。这就是我认为没有什么需要问的。这是最基本的事情,而不是:你应该用英语编码,即使你正在编写一个荷兰程序。Toon:我不是我的老师允许,这就是为什么,但是是的,大多数都是可读的,即使你不懂荷兰语。拉曼:它应该存储在整数中,更安全&按照规则:你敢说在SQL中写这个吗?我使用BLL和DAL,这是我的代码来获取SQL部分的所有内容:选择*来自Financial自由职业者:不幸的是我的SQL版本(它将access作为本地db与C#结合使用)不支持这一点:/you指的是在SQL中编写这一点吗?我使用BLL和DAL,这是我的代码来获取SQL部分中的所有内容:select*from Financian Freedoler:不幸的是,我的SQL版本(它将access作为本地db与C#结合使用)不支持这一点:/Pretty nice,但遗憾的是我不知道将有多少个单元格,那么我如何在单元格[]中给它一个值?:/I只有:dataGridViewInkomsten.DataSource=blfinancian.getAlleFinancien();//kolomen niet tonen waarin enkel id的worden getoond dataGridViewInkomsten.Columns[0].Visible=false;dataGridViewInkomsten.Columns[1]。Visible=false;dataGridViewInkomsten.Columns[2]。Visible=false;dataGridViewInkomsten.Columns[8]。Visible=false;dataGridViewInkomsten.Columns[6]。HeaderText=“Inkomst/UIGived”;然后,您可以尝试计数数据库中的所有记录,使用for循环检查gridview中的每个值,并将for计数器放入单元格[]aantal=blFinancien.getAllFinancien().Count();int teller;for(teller=0;teller是否为“0”)在数据库中,它是一个int值,所以databasefield是一个值为“0”或“1”的int,非常好