Wenn DataColumn.MaxLength gesetzt ist und Daten "programmintern" (nicht per Formular) eingefügt werden, soll die Maximallänge vor einer möglichen Exception geprüft werden.
Diese Methode kann im Prinzip einheitlich allen Tabellen zugeordnet werden. Nur wegen der möglichen zusätzlichen Maßnahmen sind getrennte Methoden meistens sinnvoller.
using System.Data;
using System.Data.Common;
//
DataTable1.ColumnChanging += new DataColumnChangeEventHandler(Table1CheckMaxLength);
//
void Table1CheckMaxLength(object sender, DataColumnChangeEventArgs args)
{
if (args.Column.DataType.Equals(System.Type.GetType("System.String"))) {
if ( ((string)args.ProposedValue).Length > args.Column.MaxLength ) {
args.ProposedValue = ((string)args.ProposedValue).Substring(0,args.Column.MaxLength);
// zusätzliche Maßnahme(n), soweit gewünscht
}
}
}
Kommentare zum Snippet