Solved

Casting Difficulties

Posted on 2009-07-05
3
343 Views
Last Modified: 2013-11-11
Hi Experts,

I have a LINQ expression that produces a single decimal number - 4201.00D.

The problem is, I cannot get this to be accepted into the textbox I have.

While the LINQ statement looks a little complicated (see below) it works and it delivers the number above. I cannot get my textbox to accept this number.

The error  I get is:

Conversion from type 'DataQuery(Of Decimal)' to type 'String' is not valid.

I have tried Ctype and trycast (trycast just gave me nothing).

So, my question is, how to you cast succesfully to allow a textbox to accept your LINQ statement result.

Kind Regards

Simon
Dim clientBalance = (From ledger In db.ledgers _

                                    Where (ledger.acc_id = "2" And ledger.tran_type = "CI" And ledger.payment_complete = False And ledger.client_no = clientNo) Or _

                                   (ledger.acc_id = "2" And ledger.tran_type = "PMT" And ledger.payment_complete = False And ledger.client_no = clientNo) _

                                    Select _

                                    balance = -1 * (From ledg2 In db.ledgers Where (ledg2.tran_type = "CI" And ledg2.acc_id = "2" And ledg2.payment_complete = False And ledg2.client_no = ledger.client_no) Select ledg2.amount).Sum - _

                                                    If((From ledg3 In db.ledgers Join ledg4 In db.ledgers On ledg3.posting_id Equals ledg4.link_posting_id Where _

                                                    (ledg3.acc_id = "2" And ledg3.payment_complete = False And ledg3.client_no = ledger.client_no) Select ledg4.amount).Count > 0, _

                                                    (From ledg3 In db.ledgers Join ledg4 In db.ledgers On ledg3.posting_id Equals ledg4.link_posting_id Where _

                                                    (ledg3.acc_id = "2" And ledg3.payment_complete = False And ledg3.client_no = ledger.client_no) Select ledg4.amount).Sum, _

                                                    (From ledg3 In db.ledgers Join ledg4 In db.ledgers On ledg3.posting_id Equals ledg4.link_posting_id Where _

                                                    (ledg3.acc_id = "2" And ledg3.payment_complete = False And ledg3.client_no = ledger.client_no) Select ledg4.amount).Count)).Distinct

Open in new window

0
Comment
Question by:si2030
3 Comments
 
LVL 9

Assisted Solution

by:Hawkvalley1
Hawkvalley1 earned 100 total points
ID: 24779321
Have you tried:

textbox1.Text = clientBalance.ToString
0
 
LVL 7

Assisted Solution

by:Mohed Sharfi
Mohed Sharfi earned 100 total points
ID: 24779349
Hi si2030,
please try this code to cast decimal to string
thanks
decimal Mydecimal = 4201.00D;

string Mystr;

Object MyObject;

MyObject = Mystr; // put  into object

Mydecimal = ()MyObject; // two-step cast works

Mystr = (string) Mydecimal;

Mystr = (string)MyObject; // throws exception

Open in new window

0
 

Accepted Solution

by:
si2030 earned 0 total points
ID: 24779527
I have worked this out. It was a LINQ issue in that while I did use distinct it still treated the result as an array.. as per (0)4201.00D. By adding ".single" to the end of ".distinct" the result was transformed into a single item.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now