|
Yes are right but I think he know what he should do now. ^^
Greetings
Covean
|
|
|
|
|
The date should be stored in the database as a datetime. If so, don't make it a string and then parse it back to a datetime again:
System.DateTime dob = (System.DateTime) rows[6] ;
comboBox2.Text = dob.ToString ( "dd" ) ;
comboBox3.Text = dob.ToString ( "MMMM" ) ;
comboBox4.Text = dob.ToString ( "yyyy" ) ;
modified on Thursday, November 12, 2009 10:58 AM
|
|
|
|
|
Why can't you just use Split?
It's difficult to know why it's not working unless we can see which values work and which don't.
|
|
|
|
|
sudhir behera wrote: string s = rows[6].ToString();//DOB LIKE 15/JULY/1988
Assuming the contents of rows[6] is a DateTime structure then you can start with that value and extract the day, month and year strings directly by its methods. Take a look at the MSDN documentation here[^] for all the options.
|
|
|
|
|
Use Split to split the date by /,- or whichever seperator u use.
Then asign the values of each item in array to ur combobox.
simplest way and have always worked for me.
|
|
|
|
|
FEMDEV wrote: simplest way
Maybe not the simplest though.
FEMDEV wrote: always worked for me
Sure, it works, but there is very likely a better way.
|
|
|
|
|
I wrote a code that is using BackgroundWorker and updating ProgressBar on ProgressChanged. But when I ran it the ProgressBar shown some progress then app got hang for long time. So I thought to check the error and finally reached on a most annoying freaky error. That is the calculation is wrong. And after all I wrote a line for debugging
System.Diagnostics.Debug.WriteLine(bytesReaded + " * 100 / " + totalBytesToRead + " = " + ((bytesReaded * 100) / totalBytesToRead));
and the output will blow the mind of
a snippet
36257792 * 100 / 54444964 = -12
36274176 * 100 / 54444964 = -12
36290560 * 100 / 54444964 = -12
36306944 * 100 / 54444964 = -12
36323328 * 100 / 54444964 = -12
36339712 * 100 / 54444964 = -12
36356096 * 100 / 54444964 = -12
36372480 * 100 / 54444964 = -12
36388864 * 100 / 54444964 = -12
36405248 * 100 / 54444964 = -12
36421632 * 100 / 54444964 = -11
36438016 * 100 / 54444964 = -11
36454400 * 100 / 54444964 = -11
36470784 * 100 / 54444964 = -11
36487168 * 100 / 54444964 = -11
I have exactly same code line with ListView and it works good. But this one aint...any idea ?
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
What is the datatype of the variables used? Try using a double, this may solve your problem...
|
|
|
|
|
both are type of int .
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Ah, you see.. int cannot contain decimals... all the devisions result (rounded) in -12.. If you change the data types to double (or decimal if you like) the problem should be solved...
|
|
|
|
|
okay, I compared the other code with this one and found I was using long in there and I changed this to long as well and it working nice
System.Diagnostics.Debug.WriteLine(bytesReaded + " * 100 / " + totalBytesToRead + " = " + (((long)bytesReaded * 100) / (long)totalBytesToRead));
but why ?? whats wrong with int
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
You could still overflow the longs someday.
|
|
|
|
|
Probably better to do the division and then the multiplication.
Edit: Yeah, that won't work with ints.
modified on Thursday, November 12, 2009 11:34 PM
|
|
|
|
|
you mean
(bytesReaded / totalBytesToRead) * 100
??
well, I'm not sure it will work a bit accurate...
>> (50 / 100) * 100
>> 0 * 100
>> 0
or
>> (50 * 100) / 100
>> 5000 / 100
>> 50
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Just try it.
modified on Thursday, November 12, 2009 12:30 PM
|
|
|
|
|
you're a binary kind of guy then:
progress = "not done at all"
progress = "not done at all"
progress = "not done at all"
...
progress = "not done at all"
progress = "done"
In VB the intermediate quotient would be a real number; other languages would stay with integers, hence the quotient is either 0 or 1.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Oh, right...
So use floats, but I still stand behind doing the division first to avoid overflow errors.
|
|
|
|
|
PIEBALDconsult wrote: doing the division first to avoid overflow errors
overflow is very unlikely when using real numbers (most certainly when the result is to be a progress percentage).
my approach is to divide both numerator and denominator by some number; the obvious choice here is by 100.
try it!
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Real numbers stored in what datatype?
Why not divide just the denominator by 100? (Unless you have a very small denominator.)
Or, find the Greatest Common Factor and reduce!
|
|
|
|
|
PIEBALDconsult wrote: Why not divide just the denominator by 100?
that's what I recommended.
PIEBALDconsult wrote: reduce!
That is costly and may not help at all, as you well know.
Next you're gonna calculate prime numbers first...
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Luc Pattyn wrote: that's what I recommended
You said divide both.
Luc Pattyn wrote: calculate prime numbers
Oh, yeah, I meant to include that: first determine that neither is a prime, then determine the GCF...
|
|
|
|
|
when what you need is the value of N/D where N and/or D is a product, it helps to divide both N and D by some rather small value X.
in the current situation N is a product of a variable and a constant (N = bytesRead * 100), hence that constant 100 is the first candidate for X.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Hmmm... so (N/100)*100/(D/100) or (N/100)/(D/100)/100 ?
Maybe the OP should look into a checked scope...
|
|
|
|
|
"divide both N and D by some rather small value X" is the math recipe.
Always think in the problem domain, then come up with the matching codes.
Applied on bytesReaded*100 with X=100 it means you don't need the multiplication in the numerator, as again you well know.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
As the poster before said use an other type or do the div before the mul, because your program calculates right.
36257792 * 100 = 3.625.779.200 (int can only hold 2.1 billion!)
-> 3.625.779.200 -> cast to int =~ -669188096
-669188096 / 54444964 = -12,29109263...
cast to int = -12
so your program is totally right!
Greetings
Covean
|
|
|
|