Şu anda alanlardaki '\ 0' karakterleri olan bir veritabanında çalışıyorum. ÖrneğinSSIS Komut Dosyası Bileşeni CHAR (n) alanlarındaki ' 0' karakterlerini kaldırmak için
alan
Category CHAR(4)
bazen sahip değer '\ 0 \ 0 \ 0 \ 0' bazen (4 sıfır karakter) ve '(4 boş karakter) kullanmak isteyen
Bu sorunla tüm alanları kişiselleştirmek için bir komut dosyası bileşeni. Aşağıdaki komut dosyasını yazdım, ancak C# boş bir dizeye '\ 0 \ 0 \ 0 \ 0' dönüştürdüğü için işe yaramıyor.
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Type rowType = Row.GetType();
foreach (IDTSInputColumn100 column in ComponentMetaData.InputCollection[0].InputColumnCollection)
{
PropertyInfo columnValue = rowType.GetProperty(column.Name.Replace("_", ""));
Object obj = columnValue.GetValue(Row, null);
if (obj is string)
{
string s = (string)obj;
StringBuilder sb = new StringBuilder();
foreach (char c in s)
{
if (c < ' ')
{
sb.Append(' ');
}
else
sb.Append(c);
}
columnValue.SetValue(Row, sb.ToString(), null);
}
}
}
o '\ 0' karakteri bireyselleşmek edebilmek amacıyla, yerine bir dize bir bayt dizisine alanını dönüştürmek mümkün mü?
, her bir sütunun kodunu yazmak yerine, tüm sütunları yinelemem için genel bir şekilde yazmamı sağlar. '' Değerleri değiştiren bir Görünüm kullanarak veriye erişme problemini çözdüm. Ama hala bir Script Bileşeni kullanarak yapmak mümkün ise dolaşıyorum. – sergiom