2016-03-02 79 views
-3

我在VB.NET程序与想运行Excel的逻辑功能的“如果”,从而完成第三列的表:我可以在DataTable或dataGridView中使用excel逻辑函数“if”吗?

我对DT和DGV代码

Dim DGV As New DataGridView 
    Dim DT As New DataTable 
    If DGV.ColumnCount > 0 Then 
     Try 
      DT.Columns.Remove("Nº") 
      DT.Columns.Remove("Q") 
      DT.Columns.Remove("k") 
      DT.Clear() 
     Catch g As DataException 
      Console.WriteLine("Exception Of type {0} occurred.", g.GetType().ToString()) 
     End Try 
    End If 
    DGV.SetBounds(12, 120, 865, 460) 
    Controls.Add(DGV) 
    DT.Columns.Add("Nº", GetType(Int32)) 
    DT.Columns.Add("Q", GetType(Double)) 
    DT.Columns.Add("k", GetType(String)) 
    For I = 1 To 100 
     DT.Rows.Add(I, I * 3) 
    Next (I) 
    Me.DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader 
    DGV.ReadOnly = True 
    DGV.DataSource = DT 

这是可能的? C#中的例子也是接受。

谢谢!

+1

可能是什么呢?列k的值应该是多少? – Steve

+0

Hi @Steve在将应用“if”的列中,例如:SE(Q> = 50;“是”;“不”)。 “号”列是数字。 –

+0

检查DataColumn.Expression属性及其语法(IIF函数) – Steve

回答

0

你可以利用DataColumn.Expression财产

DataColumn dc = DT.Columns.Add("k", GetType(String)) 
dc.Expression = "IIF(Q >= 50; 'Yes'; 'Not')" 
在创建列

或直接

DT.Columns.Add("k", GetType(String), "IIF(Q >= 50; 'Yes'; 'Not'") 
+0

谢谢,解决了我的问题。 :D @Steve –