|
Pick one forum and stick with it. Cross posting won't get you an answer any faster.
only two letters away from being an asset
|
|
|
|
|
Brilliant...thanks for the help Mark.
|
|
|
|
|
imnotso# wrote: Brilliant...thanks for the help Mark.
Your sarcasm aside, he was actually being helpful. If you irritate people on the forums (by cross-posting, for example) then you are not likely to get any help at all. People don't like being pestered.
|
|
|
|
|
Again...very helpful, it was on 2 forums for 30 mins. How very dreadful.
|
|
|
|
|
imnotso# wrote: Again...very helpful, it was on 2 forums for 30 mins. How very dreadful.
It is simply my observation of forum attitudes over many years. Feel free to ignore the advice if you wish, however it won't change general attitudes to certain behaviour.
|
|
|
|
|
Thanks, I saw the problem, removed the other version and now await any advice regarding the original issue. Thanks for your concern.
|
|
|
|
|
Hi,
I am developing desktop application in vb.net using .netframework 2.0.
In this development I am using one DLL which was developed in .netframework1.1. All of sudden i am getting the message as "The Specified module could not found.( The specified module could not be found. ("Exception from HRESULT: 0x8007007E" when i trying to run the DLL related code.
The same code it is working in other mahines.I have same .netframeworks compares to other computers which were application running sucessfully.
Even I did repair of visiual studio 2005 but no use.
Please let me know any thoughts on this problem
Regards,
Santhosh
modified on Thursday, February 5, 2009 3:02 AM
|
|
|
|
|
Hi guys,
Im wondering if its possible to SOMEHOW convert a class that inherits from an abstract base generic class and to convert the subclassed instance back up to it parent??? It seems it can be done for some reason. Here is my scenario:
Public MustInherit Class EntityCollectionBase(Of TEntity As {EntityBase, IEntity})
Public Class BillingPeriodCollection Inherits EntityCollectionBase(Of BillingPeriodEntity)
End Class
NOTE : BillingPeriodEntity inherits from EntityBase (which implements IEntity)
So if i have code such as the following:
Dim bpc As New BillingPeriodCollection()
LoadCollection(CType(bpc, EntityCollectionBase(Of EntityBase))) *** THIS WONT COMPILE DAMN IT!!!
Private Sub LoadCollection(ByVal collection As EntityCollectionBase(Of EntityBase))
End Sub
My question is this : Why doesnt this damn thing compile? All im trying to do is take a specific instance of a generic typed collection, and simply cast it back up since the type being stored is actually a subclass of the parent (ie. BillingPeriod inherits EntityBase).... Just as BillingPeriodCollection inherits EntityCollectionBase....
It would seem VERY viable that this should be done.... For example if i had a generic list of FORD cars and that inherits from CAR, surely its possible to cast a list of FORDS back up to a list of CARS... That way i can then handle all models at the CAR level generically.... which is what im trying to do in my real app based on code above...
|
|
|
|
|
This has to do with the concepts of covariance and contra variance. There are some nice articles explaining how this is being planned for interfaces in the next version of the framework, but right now you can't do that sort of thing.
To see what could happen if you were allowed to do the kind of cast you wanted, I'll show you a simpler example that has the same problem.
Dim myList As New List(Of String)
Private Sub AddToList(ByVal collection As List(Of Object))
collection.Add(New Object())
End Sub
'what should happen when you call this line?
AddToList(CType(myList, List(Of Object))
'or if the previous line works, what about here
Dim lastLength As Integer = myList(myList.Count - 1).Length
The restriction is that the compiler must be able to perform compile-time verification that the only things going into and coming out of a generic class are the generic type specified when the instance was created (as opposed to Arrays, which do run-time verification and throw exceptions instead). This means you cannot convert a List(Of String) into a List(Of Object) because there is no good way for the compiler to know what you will do with the list once you convert it.
|
|
|
|
|
LoadCollection(CType(bpc, EntityCollectionBase(Of EntityBase)))
Why are you casting to a collection of EntityBase? If your goal is to have a LoadCollection function which can handle different things that inherit from type EntityBase, you should use:
Sub LoadCollection(of T as EntityBase)(thing as EntityCollectionBase(of T))
...
End Sub
LoadCollection(of BillingPeriodEntry)(bpc)
That way the compiler will know in the LoadCollection routine that the items of bpc can be acted upon based on their inheritance from EntityBase, but that only items of type BillingPeriodEntry (a subclass of entity base) can be put into the collection.
|
|
|
|
|
Hi all,
I've searched high and low and even found a few code project articles but nothing in C# and nothing that really does what I need which is to write some code to find a particular day in a month given an occurrence (which could be first, second, third, fourth or last) and a day type or name (which could be "weekday", "Monday", "Tuesday" ... "Sunday") and a number of months (1-12).
I'm doing this as part of replicating the Outlook calendar recurrence dialog so users of my app can select custom dates to run reports. So, for example, they might want to run one report on the first weekday of each month, another report on the third Wednesday of every two months and maybe another one on the last Friday of each 3 months.
My only starting position is that I have today's date which will always be the date the report has just run... from that I need to work out any combination of the above so I can then schedule the next occurrence of the report.
I've tried doing it with some sort of formula but nothing I've tried works so at present I'm adding the months to today's date, setting the day to 1 then simply looping though testing each day until I find what I want - but it's pretty clumsy to be honest and getting the last occurrence is pretty tricky too. Are there folks out there that have better math brains than me that would know how to do this in a formula?
All help and suggestions would be very welcome.
Mike
|
|
|
|
|
Hi,
you need the DateTime class. For any given date it allows you:
- to move back to the first of the month (new DateTime(year, month, 1))
- to advance by a number of months (AddMonths)
- to figure out the day of the week (DayOfWeek: 0=sunday,... 6=saturday)
- to advance by a number of days (AddDays), possibly a number depending on the day of week you have
and the day of week you want.
That should suffice to solve whatever problem you have.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
First, you should check out the System.Globalization.Calendar class. It is a much richer tool than the simple DateTime class, and offers features like GetDaysInMonth(), GetWeekOfYear(), IsLeapYear(), etc. These can help in finding first and last, figuring out the weeks in a month, etc. You can use the info from Calendar to help you build a DateTime, and the rest could be done with some math.
|
|
|
|
|
Thanks for the input guys, it's appreciated.
Luc,
I have been using DateTime - you simply couldn't solve this without that class. Sorry if my post wasn't clear (though I thought I explained it pretty well) - I was looking more for a formula based on today, using DateTime to find out the day I wanted.
Jon,
Thanks for that suggestion - I didn't even think to use the Calendar class so will investigate that now.
EDIT: I just looked at the Calendar class but you have to already know the day you want so it's not much use to me unfortunately.
I do have it working quite nicely now via the loop method but, being a programmer, I just *know* there's a nicer, quicker, more efficient way to do it!
|
|
|
|
|
No it wasn't sufficiently clear to me. Maybe a couple examples would help.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Well, you need to start with something. You already mentioned that you were starting with the current day. From there, Calendar gives you some useful tools to determine important things, like if the current year is a leap year (in which the last day of Feb. is the 29th), etc. Calendar won't do the work for you...it will just simplify the work. There is indeed an algorithm that needs to be written to calculate the series, and that I'll leave up to you. I just thought the Calendar class might help you with some of the odd cases (i.e. leap year), finding the last day of each month dynamically, etc.
|
|
|
|
|
nzmike wrote: at present I'm adding the months to today's date, setting the day to 1
Same as i would do ...
nzmike wrote: then simply looping though testing each day until I find what I want
... not what i would do.
Let's say you find the 1st of the month of interest is a Wed. (Apr.2009) (which most datetime/cal classes will give).
From where you are now, do:
enum {Mon, Tues, Wed, Thurs, Fri, Sat, Sun} Days;
int weekfirst[7] = [6, 7, 1, 2, 3, 4, 5]
int weeklast[7] = [27, 28, 29, 30, 24, 25, 26]
int *week = weekfirst;
int mul = 1;
If parse 'last' then
mul = -1
week = weeklast
int weekdayidx = (index of lowest number in first 5 elements of week)
int occurence = (default = 0, parse 'first' gives 0, 'second' gives 1, ...);
int offset = 7 * occurence * mul;
int day = offset;
switch( type ) {
case Weekday : a bit more fidly, but should be easy from here; break;
case Monday : day += week[Mon]; break;
...
}
e.g.
2nd Thurs = 7*1*1 + 2 = 9th
1st Mon = 7*0*1 + 6 = 6th
last Tues = 7*0*-1 + 28 = 28th
2nd last Sat = 7*1*-1 + 25 = 18th
[EDIT] whoops, sorry about the C syntax, forgot is was in .net forum [/EDIT]
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
How to develop smart Card Application
in C# windows Application.
Please reply soon.
|
|
|
|
|
Connect a smart card reader to a serial port on your computer, use the serialport component in .net to comunicate whit the reader. then do some research on what protocols and formats you need to use, and go from there
|
|
|
|
|
can any suggest me a book to learn...
asp.net using C#
i want learn from the basic...
book with many examples..
book name
author name and edition..
|
|
|
|
|
I'm reading Pro ASP.NET 3.5 in C# 2008 second edition by matthew macdonald and mario szpuszta, published by apress, they have other books that are pretty good also such as Pro C# 2008 and the .NET 3.5 Platform by Andrew Troelsen (Apress 2007)
|
|
|
|
|
|
try
OdbcConnectionObject.BeginTransaction
INSERT INTO TABLE1
INSERT INTO TABLE2
INSERT INTO TABLE3
OdbcConnectionObject.Commit
Catch ex as Exception
OdbcConnectionObject.Rollback
End Try
When INSERT INTO TABLE1 is completed, I stop the program but data in TABLE1 is already inserted. Autocommit mode is turned off in oracle.
Why does it happen?
|
|
|
|
|
It shouldn't happen. Could you use debugger, execute the first insert and check on the database side if your connection is having a transaction. If not, the transaction is committed somewhere by force. Without seeing the actual code it's quite hard to say more. One thing you could also do is check ODBC driver settings.
|
|
|
|
|
All,
I am having a bit of a headache with serialization of a custom class when using remoting. I am sure the problem is when remoting serializes a List<> of any type.
I was following the article by Marcel Heeremans - http://www.codeproject.com/KB/IP/TwoWayRemoting.aspx[^]
I managed to convert the program into a VB.NET service that communicates with a client exe. However, I wanted to create a custom type to enable messaging to a client.
I created my custom class that would be passed to a client via callback. This class is MessagePrompt (see below). I have changed my list type to String for this post as this fails as well as having any list type.
When the object is passed from server to client via callback, it fails. No exceptions are raised. However, from the tracing, I can see the object get successfully serialized at runtime. However, the client does not receive the object in the callback.
If I comment the following line, the the client does receive the object in the callback:
info.AddValue("Actions", _actions, GetType(List(Of String)))
If I manually serialize and deserialize the object then with XmlSerializer and StringWriter/StringReader, then it would appear to work fine in the client application.
Are there any issues as to why this would fail?
My assemblies are not strongly names as this causes the client callback to not work from the off. Therefore nothing is installed in the GAC.
Am I missing something?
Any pointers as to what I need to look at?
I can change the type to an ArrayList which would work but ideally I want to have a typed list.
Cheers for any help,
Paul
Here is my class:
<Serializable()> _
Public Class MessagePrompt
Implements ISerializable
Public _name As String
' this is the problem...
Public _actions As List(Of String)
Public Sub New()
End Sub
Public Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
Try
Trace.WriteLine("MessagePrompt.New: Deserializing")
_actions = CType(info.GetValue("Actions", GetType(List(Of String))), List(Of String))
Trace.WriteLine("MessagePrompt.New: There are " & _actions.Count & " actions")
Catch ex As Exception
Trace.WriteLine("MessagePrompt.New: Exception encountered deserializing.")
Trace.WriteLine(ex.ToString())
End Try
End Sub
Public Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) Implements System.Runtime.Serialization.ISerializable.GetObjectData
Trace.WriteLine("MessagePrompt.GetObjectData: Serializing")
' comment this line and all works fine!!!!!! except that
' the values I need will not come across the wire unless I use
' array list.
info.AddValue("Actions", _actions, GetType(List(Of String)))
End Sub
End Class
modified on Tuesday, February 3, 2009 5:46 AM
|
|
|
|
|