Wednesday, July 15, 2009

Get all controls inside window form and set its value

This code cleans/set the value of textbox control to space("") inside the formwindow and inside the groupbox control.

VB.NET
For Each octl As Control In Me.Controls
If (TypeOf octl Is GroupBox) Then
Dim gbox As GroupBox = DirectCast(octl, GroupBox)
For Each ictl As Control In gbox.Controls
If (TypeOf ictl Is TextBox) Then
Dim itxt As TextBox = DirectCast(ictl, TextBox)
itxt.Text = ""
End If
Next
End If

If (TypeOf octl Is TextBox) Then ' textbox outside the groupbox
Dim txt As TextBox = DirectCast(octl, TextBox)
txt.Text = ""
End If

Next

C#
foreach (Control octl in this.Controls)
{
if ((octl is GroupBox))
{
GroupBox gbox = (GroupBox)octl;
foreach (Control ictl in gbox.Controls)
{
if ((ictl is TextBox))
{
TextBox itxt = (TextBox)ictl;
itxt.Text = "";
}
}
}
if ((octl is TextBox))
{
TextBox txt = (TextBox)octl;
txt.Text = "";
}
}

Solution for suspected MS SQL Database

In addition to these ideas, also check out www.microsoft.com/support for the MS Knowledgebase. Specifically Q165918.

Firstly look in \LOG and look at all recent errorlog(s). There WILL be an indication here as to why the database has been marked suspect. You need to fix whatever the problem is first (i.e. missing file, permissions problem, hardware error etc.)

Then, when the problem has been fixed and you're either sure that the data is going to be ok, or you have no backup anyway, so you've nothing to lose, then change the database status to normal and restart SQL Server. To change the database status, and to get more information on recovery, look up the sp_resetstatus sp in the Books Online.

If you don't have access to sp_resetstatus information, then the short version of this is :-

UPDATE master..sysdatabases SET status = status ^ 256 WHERE name =

If the database still goes back into suspect mode, and you can't fix the original problem, and you have no recent backup, then you can get information out of the database by putting it into emergency mode. If you do this, extract the data/objects out with bcp/transfer manager and then rebuild the database. Note that the data may be corrupt or transactionally inconsistent.

Issue the following command to put the database into emergency mode (you'll need to allow updates first)

UPDATE master..sysdatabases SET status=32768 WHERE name=''