I remember how annoying it was in Visual Basic 6 to manually set the maximum allowed length of textboxes according to the maximum length of the table column where the data was going to be stored.
Now, when working with the Microsoft .NET Framework, we have ways to dynamically set the maximum allowed length of textboxes.
In this article, we are going to see how to set the maximum allowed length by getting the correct value from the
DataTable where the data is stored.
We need to obtain the schema information of the table to know the maximum allowed length of the data column. So, we are going to use a
DataAdapter property called
MissingSchemaAction. For more information on this property, refer to this page: http://msdn2.microsoft.com/en-us/library/49z48hxc.aspx.
Using the Code
First of all, we need to get the data (I assume that the connection is opened elsewhere):
public DataTable GetData(SqlConnection oConnection,string SqlQuery)
oCommand = new SqlCommand(SqlQuery, oConnection);
oDataAdapter = new SqlDataAdapter(oCommand);
oDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
The textboxes added in the form have to be named like the columns of the table, so we can find them according to the
DataTable column names.
private void SetMaxLengthText()
foreach (DataColumn dc in dtDatos.Columns)
control = this.Controls.Find(dc.ColumnName, true);
if (control.Length > 0)
((TextBox)control).MaxLength = dc.MaxLength;