Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# 如何以编程方式在datagridview中定义列?_C#_Winforms_Datagridview_Datagridviewcolumn - Fatal编程技术网

C# 如何以编程方式在datagridview中定义列?

C# 如何以编程方式在datagridview中定义列?,c#,winforms,datagridview,datagridviewcolumn,C#,Winforms,Datagridview,Datagridviewcolumn,我正在制作windows应用程序 我添加了1个按钮和1个datagridview 单击该按钮时,datagridview中显示的数据来自DB 这一步,我有一个问题 我希望像这样以编程方式定义DataGridView列 private void btnStart_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); SqlConnecti

我正在制作windows应用程序

我添加了1个按钮和1个datagridview

单击该按钮时,datagridview中显示的数据来自DB

这一步,我有一个问题

我希望像这样以编程方式定义DataGridView列

private void btnStart_Click(object sender, EventArgs e)
{
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AdvConn"].ConnectionString);
    SqlCommand cmd = new SqlCommand("UP_SelectTableCount", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    try
    {
        conn.Open();

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
    }
    catch{}
    finally
    {
        conn.Close();
    }
    dt = ds.Tables[0];
    metroGrid2.DataSource = dt; }
  • 第一列=复选框列
  • 第二列=进程列(我想在这里绑定数据)
  • 第三列=进度条列(我将创建此列)
  • 下面是SQL查询

    SELECT COUNT(*) as Process from Sales.SalesOrderDetail
    UNION
    SELECT COUNT(*) as Process from Purchasing.ProductVendor
    UNION
    SELECT COUNT(*) as Process from Person.Address
    UNION
    SELECT COUNT(*) as Process from Production.WorkOrder
    
    按钮点击事件是这样的

    private void btnStart_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AdvConn"].ConnectionString);
        SqlCommand cmd = new SqlCommand("UP_SelectTableCount", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        try
        {
            conn.Open();
    
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
        }
        catch{}
        finally
        {
            conn.Close();
        }
        dt = ds.Tables[0];
        metroGrid2.DataSource = dt; }
    
    如何添加或修复代码?请帮帮我


    谢谢。

    将数据添加到datagridview后,您可以编写一个简单的函数来添加新列,如下所示

    private void AddNewColumns()
    {
        metroGrid2.Columns.Add("newColumnName", "Column Name in Text");
        //To add values to the column you should run a foreach loop 
        foreach (DataGridViewRow row in metroGrid2.Rows) 
        {
            if (row.Cells[1].Value.ToString()=="1") //Some condition or value  
                row.Cells[2].Value = "50%"; 
        }
    }
    
    这只是关于添加列的想法,而不是关于添加进度条。但我相信这可能会对您有所帮助,因为您主要关心的是在DGV中添加一个新列。希望这有帮助


    添加进度条列可能会帮助您

    将数据添加到datagridview后,您可以编写一个简单的函数来添加新列,如下所示

    private void AddNewColumns()
    {
        metroGrid2.Columns.Add("newColumnName", "Column Name in Text");
        //To add values to the column you should run a foreach loop 
        foreach (DataGridViewRow row in metroGrid2.Rows) 
        {
            if (row.Cells[1].Value.ToString()=="1") //Some condition or value  
                row.Cells[2].Value = "50%"; 
        }
    }
    
    这只是关于添加列的想法,而不是关于添加进度条。但我相信这可能会对您有所帮助,因为您主要关心的是在DGV中添加一个新列。希望这有帮助


    添加进度条列可能会帮助您使用
    dataGridView1.Columns.Add
    (colname)谢谢新手。是的,我已经知道怎么用了。但是我想更具体地使用
    dataGridView1.Columns.Add
    (colname)谢谢新手。是的,我已经知道怎么用了。但我想说得更具体一点谢谢你Mohit Shrivastava。我知道如何使用它。所以我试试看。我也很感激你关于进度条的链接!我很乐意帮忙。快乐编码:)谢谢你Mohit Shrivastava。我知道如何使用它。所以我试试看。我也很感激你关于进度条的链接!我很乐意帮忙。快乐编码:)