Thursday, November 16, 2006

binding Source n Combo box initialization problem



I was trying to bind a combo box to a list of items . Now each item is a domain object .

myBindingSource.DataSource = my list of domain objects

i create a binding between the SelectedItem property of the combo box and the property Value of my domain object in the binding source .

now initially when the value of my domain object is null , i want an empty row to appear in the combo box , which works fine . Now as i choose different domain object values in the combo box , the value of the domain object is not refreshed .

I was using myComboBox_SelectedIndexChanged event to notify of the change in domain object value , but it was not helping the refreshing of other entities that depended on the values of the domain object .

So now instead of the SelectedIndexChanged Event now i use the
myBindingSource_CurrentChanged event and it works like a charm

Monday, November 06, 2006

a neat ToString for c++




template <class T>
string to_string(T toBeConverted){

// create an out string stream
ostringstream buffer;
// write the value to be converted to the output stream
buffer << toBeConverted;
// get the string value
return buffer.str();
}

Monday, September 18, 2006

as in C#

The keyword as in c# prevents the InvalidCastException From happening , its default behaviour is to nullify the object being casted . When the object being casted is used it thwrows a Null Exception .

Thursday, September 14, 2006

splitting strings in c++ using stringstream

of if you need to split a string "10 20 30 40 " in c++

You can do that using istringstream

all u need to do is

#include < sstream >

Assuming s is "10 20 30 40"

istringstream iss(s) ;

int ten , twenty , thirty , forty ;
iss >> ten >> twenty >> thirty >> forty;

converting 2D array into single array

This piece of snippet is written in c++ , converts a 2 dimensional Array into a single array
//
provide the size of the array to be converted with T being the data type
// invoke the function like


// int * arr = Covert2DTo1DimensionalArray ( source_array , 3 , 3 )



template < class T , int SIZE >
T* Covert2DTo1DimensionalArray( T source[SIZE][SIZE] , int width , int height ){

// the width of the new single dimensional array would be width * height
int length = width * height;

// create a new single simensional array on the heap
T * _array = new T[length];

// push values into the single dimensional array

int ctr = 0;

for(int y = 0; y <= height ; y++) {
for( int x = 0; x <= width; x++) {
_array[ctr++] = source[y][x];
}
}
return _array;
}

Wednesday, September 06, 2006

ComboBox DataSource And Refresh Issues

How many times have you been frustrated by the fact , that you set the DataSource on a
ComboBox and it does Not show up or it does not Refresh .

basically,
code like
myComboBox.DataSource = value

does not update the values on screen

the workaround to get this working though not elegant is :

BindingManagerBase manager = myComboBox.BindingContext(value);
manager.SuspendBinding();
myComboBox.DataSource = value;
manager.ResumeBinding();

Sunday, August 27, 2006

Generating uniqu GUIDS in MS Sql Server

Use NewId() to generate new unique guids .

Stupid MS Sql Server Logon failure

The So called MS Sql Server throws up a ERROR 1069 : Logon failure everytime you change indows password .

The way to get it working is :

o correct the password in Microsoft Windows 2000 Server and Microsoft Windows XP:
1.Click Start, point to Settings, and then click Control Panel.
2.Double-click Administrative Tools, and then double-click Services.
3.Use one of the following steps based on your instance type:
For a default instance of SQL Server, double-click MSSQLServer, and then click the Log On tab.
For a named instance of SQL Server, double-click MSSQL$YourInstanceName, and then click the Log On tab. Replace YourInstanceName with the actual name of the SQL Server instance.
For a default instance of SQL Server Agent, double-click SQLAgent, and then click the Log On tab.
For a named instance of SQL Server Agent, double-click SQLAgent$YourInstanceName, and then click the Log On tab. Replace YourInstanceName with the actual name of the SQL Server instance.
4.Type the correct password in the Password and Confirm password textbox, and then click OK.

Friday, August 25, 2006

ListBox SurprizEEE !!

.net Listbox is quirky . I was trying to set an ArrayList as the datasource of my list box .

my code looked like :

_list = new ArrayList();
myListBox.DataSource = _list;


I thought that once i Add or Remove entries to this list . It would reflect that automatically reflect and update it on the listbox view . But to my surprize that doesnt work so .

The way to get this working is :

everytime you change list u need to reset the Datasource , speaking in terms of code that means , u need to write somethin like

myListBox.DataSource = new ArrayList();
myListbox.DataSource = list;

you have to do this everytime you change the list.