2016-02-02 1 views
0

je dois mettre toutes les colonnes qui sont des chaînes vides à une valeur nulle réelle dans SSISC# SSIS Comment itérer colonnes et à null

Normalement, je peux utiliser une colonne dérivée et mettre à NULL (DSTR , 18, 1252)

Depuis que j'ai plein de champs et que je veux le faire en une fois, j'ai décidé d'utiliser un composant de script pour le faire. Ce code est jusqu'à présent

foreach (PropertyInfo inputColumn in Row.GetType().GetProperties()) 
{ 
    if (!inputColumn.Name.EndsWith("IsNull") 
    { 
     if (inputColumn.GetValue(Row, null).ToString().Equals("")) 
     {      
      inputColumn.SetValue(Row, null, null); 
     } 
    } 
} 

Mais il jette cette erreur:

[Script Component [11692]] Error: System.NullReferenceException: Object reference not set to an instance of an object. at
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(Exception e) at
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer) at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100 wrapper, Int32 inputID, IDTSBuffer100 pDTSBuffer, IntPtr bufferWirePacket)

Comment puis-je le mettre à l'équivalent de NULL (type) dans une colonne dérivée?

+0

J'ai trouvé quelque part qu'en définissant X_IsNull à true, cela fonctionne également, mais comment l'incorporer? – Skids

Répondre

0

En plus de mon commentaire, il suffit de définir la propriété équivalente _IsNull à true.

Row.GetType().GetProperty(inputColumn.Name + "_IsNull").SetValue(Row, true, null);