|
I have some arrays declared as,
Dim upperCases() As String = {"ALPHA", "BETA", "GAMMA"}
Dim lowerCases() As String = {"alpha", "beta","gamma" }
...many more arrays
I need to read appropriate array based on the parameter passed to the function
Function getText(ByVal pos As Integer, ByVal arrayName As String) As String
'I want to do something like
Return arrayName(pos)
End Function
Could anybody help me please?
|
|
|
|
|
If you're looking at doing something like this, you most certainly don't need it. If your code is smart enough to pass in the correct array name and element number, it's smart enough to just do Dim str As String = upperCases(x) without going to a function to do it.
You cannot do what you want, how you to do it. It would take using Reflection methods to do something like this. It would also be a very expensive operation to return a value, so if performance is an issue, this isn't they way to do it.
You'd have to do something like this:
Public Function getText(ByVal pos As Integer, ByVal arrayName As String) As String
Select Case arrayName
Case "upperCases"
Return upperCases(pos)
Case "lowerCases"
Return lowerCases(pos)
Case Else
Throw New ArgumentException("Invalid array name passed!")
End Select
End Function
|
|
|
|
|
Dave,
Thank you for reply.
When you say to do something like,
Dim str As String = upperCases(x)
That is what I am tring to do, which does not work.
To make sure that prog pass the correct array name I have created an Enum that has all the array names, which I access as
Enum AllArrays
EmployeeGrade
EmployeeDepartment
EmployeePrivileges
EmployeeSlab
EmployeeAgeGroup
End Enum
Dim arrNames As String() = System.Enum.GetNames(GetType(AllArrays))
Dim readArray As String = colorNames(AllArrays.EmployeeDepartment)
I get the correct array name to access in readArray.
Now, when I try to read it using readArray(0), It returns the first character of array name i.e. "E". readArray(1) returns "m" and so on. I understand it is happening because readArray is a type string, but is there a way to do what I want to do, other than using select case or If..Else.
Thanks again.
|
|
|
|
|
peacefulmember wrote: but is there a way to do what I want to do,
I already told you, no.
peacefulmember wrote: other than using select case or If..Else.
The only other method is to use Reflection, but it's incredibly slow.
You really need to rethink this design. You're treating variable names as an integral part of the Data and Business Logic, which you should NEVER do, nor do you ever need to do it in a proper design.
You're combining functions that really should be seperated. You're needlessly trying to get a single function to return a value from a number of arrays when this is never necessary.
If you want functionality like this, put your data into DataTables.
|
|
|
|
|
Does anyone know how to convert a generic collection to a generic KeyedCollection? I need the benefits of the KeyedCollection to be able to get items by index as well as by key. Now the problem is that my middle tier is returning generic collections. I would like to create a KeyedCOllection class that has a constructor that you pass it a Collection like List and Collections have. Anyone have any ideas on how to go about doing this?
Regards, Santiago "Saint" Perez Florida's Turnpike Enterprise - Santiago.perez@dot.state.fl.us
|
|
|
|
|
Hi,
principally you can simply inherit from KeyedCollection and add a constructor like this one:
public MyKeyedCollection(Collection<TItem> items) {
foreach (TItem item in items)
base.Add(item);
}
The problem which might arise is implementing the abstract GetKeyForItem function. This is hard (impossible?) without knowing what kind of content the list has. You could use a delegate for this which you could also put into the constructor, but its hard to make an advice on this without knowing the exact requirements.
Robert
|
|
|
|
|
That wouldn't be a problem as one of my type params will be of a common Interface which in turn has UNiqueID as property and all objects will have the same property name. I guess Generics can only take you so far. Delegate is a great idea though to get around this. I was thinking of creating a constructor this way but was concerned about performance and just though there would be implcit conversion so as to avoid the iteration.
THanks
Regards, Santiago "Saint" Perez Florida's Turnpike Enterprise - Santiago.perez@dot.state.fl.us
|
|
|
|
|
Hi,
I am writing the following logic for SQLMembership password reset:
SqlMembershipProvider objSqlMembershipProvider = new SqlMembershipProvider();
strPassword = objSqlMembershipProvider.ResetPassword("testusername", "testanswer");
Inspite of setting the proper values of required attributes (enablePasswordReset="true"), it throws following error:
This provider is not configured to allow password resets. To enable password reset, set enablePasswordReset to "true" in the machine.config file.
What might be the reason?
Regards,
Vipul Mehta
Sr. Software Engineer
NIIT Technologies Ltd
|
|
|
|
|
In your web.config file or in your machine.config file where you define your provider there is an attribute in the xml that is the enablePasswordReset. Currently that attribute doesn't exist or is set to false. So you need to find your Membership provider in whatever config file it is in and add the attribute with true.
Hope that helps.
Ben
|
|
|
|
|
Hi,
I have already set that attriute as True. But still this problem exists.
Regards,
Vipul Mehta
Sr. Software Engineer
|
|
|
|
|
My only guess then is that you set it in the wrong provider. It needs to be set in the membership provider that your site is using. Perhaps you have it set on one level and then you are overwriting that value on the next level. So perhaps you have set it to true at the machine.config level, but it is set to false in the web.config level?
Ben
|
|
|
|
|
Hi,
I am digging into WPF and i have found that the control used to display webpages (Frame) cant be used as a Visual Brush.
How can i find a form of displaying webpages in a way that i then can use it as a visual brush in a 3D surface?
Thx,
Nuno
|
|
|
|
|
hi
is there a way to change the shape/style of button? the application is in C# .NET compact framework 2003.
thanks
|
|
|
|
|
Not sure. Maybe create a custom control...
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|
|
Hi,
In my web app I am using Windows authentication along with provider model to store the user details in aspnet_Membership table. So when I create a new User from 'ASP.NET Cofiguration' website, the password gets stored in "Hashed" format in aspnet_Membership table.
Can I decrypt this hased password? If yes can I you please let me know how it can be done?
Thanx in advance.
Regards,
Vipul Mehta
Sr. Software Engineer
|
|
|
|
|
The point of hashes are that they are one way transformations, they cannot be reversed.
This is why it's more secure to store a password as a hash rather than just encrypted, it means that even with time and computing power the original password cannot be retrived.
http://en.wikipedia.org/wiki/Cryptographic_hash_function[^]
|
|
|
|
|
Hash is one-way encryption.
|
|
|
|
|
Hi,
I'm working on a Component providing help for complex forms. For that, I'm registering at the HelpRequested event of the root Control.
This way, I'm able to catch all help events without registering at all Controls. But now I've the problem, that all events I catch seem to come from the root Control.
Is there a way to get the real sender of the HelpRequested event without registering at all controls? (Perhaps via MousePos?).
Thanks in advance
Michael
|
|
|
|
|
Try calling GetChildAtPoint from your parent control with the coordinates specified in the event arguments.
Robert
|
|
|
|
|
Hi Robert,
Thanks for the pointer. That did it!
Michael
|
|
|
|
|
Hi all,
I have created a scheduling service which runs all the time, I am having a query regarding following set of code.
private DataSet GetDataSet()<br />
{<br />
<br />
DataSet excelDataSet = new DataSet();<br />
OleDbConnection excelConnection = new OleDbConnection(myConnectionString);<br />
OleDbCommand excelCommand = new OleDbCommand(@"SELECT * FROM " +fileName, excelConnection);<br />
OleDbDataAdapter excelAdapter = new OleDbDataAdapter(excelCommand);<br />
<br />
excelConnection.Open();<br />
excelAdapter.Fill(excelDataSet);<br />
<br />
if (excelConnection.State == ConnectionState.Open)<br />
excelConnection.Close();<br />
<br />
return excelDataSet;<br />
}
Do I need to call dispose on OleDbDataAdapter and OleDbConnection connection object to avoid memory leaks or garbage collector will take care of this?
Regards,
Prakash Kalakoti
|
|
|
|
|
Though the GC would collect all of the allocated managed memory periodically, its best to dispose off the DB objects when you are done. Your code should have been in the lines of :
using(OleDbConnection excelConnection = new ...)
{
etc etc
}
|
|
|
|
|
I recently downloaded and was interested in using the OrderedDictionary class but can't seem to index items because it doesn't inherit OrderedList. It does Implement COllection though and I would assume I would be able to index an item but no go, can't index the values or Keys. Anyone had any luck with this? Is there another library in the PowerCOllections that will allow you to find an item by either the Index or Key?
Thanks,
Santiago Perez
Regards, Santiago "Saint" Perez Florida's Turnpike Enterprise Santiago.perez@dot.state.fl.us
|
|
|
|
|
I have an application that is organized like below: (top to bottom)
COMenabled.EXE
OCXControl.ocx
DLLLibrary.dll (linked statically with a managed C++ wrapper)
NETLibrary.dll (C# DLL)
(other C# DLLs)
So basically, the COMenabled.EXE has a reference to the OCXControl, which links to the DLLLibrary, which in turn links to the NETLibrary, and so on down the line....
I have a problem where if I do not place the COMenabled.EXE in the same directory as the OCX control, it gives me an exception trying to load the NETLibrary.DLL. If I put it in the same directory, it then works.
I do not have any config files for any of the DLLs or EXEs.
Also, I do not load any of the DLLs into the GAC either. The same problem listed above occurs even when I load NETLibrary.dll into the GAC.
Can anyone give me suggestions as to what the problem is and how to solve it?
Thanks,
David
|
|
|
|
|
I am about to embark on a complex mechanism for instantiating hierarchical sets of remotable classes to handle Marshal-By-Reference and Marshal-By-Value remoting.
The reason for this is to enable the client to be able to continue working disconnected from the server should a server fail for some reason.
To keep it simple the model I am considering involves the server objects switching between MBR and MBV.
Anyone done this before and knows of a simple way to do this without having to reconstruct the objects on the server?
|
|
|
|