65.9K
CodeProject 正在变化。 阅读更多。
Home

如何动态设置文本框的最大允许长度

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.52/5 (9投票s)

2008 年 1 月 6 日

CPOL
viewsIcon

21361

如何动态设置文本框的最大允许长度。

引言

我记得在 Visual Basic 6 中,手动设置文本框的最大允许长度,使其与数据将要存储的表列的最大长度相匹配,是多么令人烦恼。

现在,在使用 Microsoft .NET Framework 时,我们有方法可以动态设置文本框的最大允许长度。

在本文中,我们将学习如何从存储数据的 DataTable 中获取正确的值来设置最大允许长度。

背景

我们需要获取表的模式信息,以了解数据列的最大允许长度。 因此,我们将使用 DataAdapter 属性,称为 MissingSchemaAction。 有关此属性的更多信息,请参阅此页面:http://msdn2.microsoft.com/en-us/library/49z48hxc.aspx

Using the Code

首先,我们需要获取数据(假设连接已在其他地方打开)

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;
}

表单中添加的文本框必须与表中的列名相同,这样我们就可以根据 DataTable 列名找到它们。

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;
    }
}
© . All rights reserved.