简体   繁体   English

C#动态设置DataRow

[英]C# Dynamic Set DataRow

I used cassia.dll for manage terminal servers and write simple program. 我使用cassia.dll来管理终端服务器并编写简单的程序。 I'll get List Property but not know how make dynamic add in Datarow. 我将获得List属性,但不知道如何在Datarow中进行动态添加。

DataTable use for Filtring. DataTable用于筛选。

 private void btn_GetTSServers_Click(object sender, EventArgs e)
        { 
        TSManager = new TerminalServicesManager();
        ITerminalServer ITS = TSManager.GetRemoteServer("localhost");
        ITS.Open();

        BSource = new BindingSource();
        DTable = new DataTable();

        Type t = ITS.GetSessions().First().GetType();
        PropertyInfo[] propinfo = t.GetProperties();

        foreach (PropertyInfo prop in propinfo)
        {
            DTable.Columns.Add(prop.Name);
        }

        foreach(ITerminalServicesSession session in ITS.GetSessions())
        {
           DTable.Rows.Add(session.ServerName, .. .. . .. etc How make Dynamic?)   
        }

        dataGridView1.DataSource = DTable;
}
        private void button1_Click(object sender, EventArgs e)
        {
            (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = textBox1.Text;
        }

You could try something like: (pseudo-code, not tested/optimized) 您可以尝试执行以下操作:(伪代码,未经测试/优化)

foreach(var session in ITS.GetSessions())
{
    Type t = session.GetType();
    PropertyInfo[] propinfo = t.GetProperties();
    var list = new List<object>();
    foreach (PropertyInfo prop in propinfo)
    {
        list.Add(prop.GetValue(session, null));
    }
    DTable.Rows.Add(list.ToArray());   
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM