Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

How to set the maximum allowed length of textboxes dynamically

0.00/5 (No votes)
6 Jan 2008 1  
How to set the maximum allowed length of textboxes dynamically.

Introduction

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.

Background

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)
{
    SqlCommand oCommand;
    SqlDataAdapter oDataAdapter;
    DataTable dtData=null;
    oCommand = new SqlCommand(SqlQuery, oConnection);
    oDataAdapter = new SqlDataAdapter(oCommand);
    //we need this to obtain the schema data of the table
    oDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    oDataAdapter.Fill(dtData);
    oDataAdapter.Dispose();
    oCommand.Dispose();
    return dtData;
}

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[] control;
        control = this.Controls.Find(dc.ColumnName, true);
        if (control.Length > 0)
            ((TextBox)control[0]).MaxLength = dc.MaxLength;
    }
}

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here