?
Solved

Casting Difficulties

Posted on 2009-07-05
3
Medium Priority
?
354 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 400 total points
ID: 24779321
Have you tried:

textbox1.Text = clientBalance.ToString
0
 
LVL 7

Assisted Solution

by:Mohed Sharfi
Mohed Sharfi earned 400 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

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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.
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Stellar Phoenix SQL Database Repair software easily fixes the suspect mode issue of SQL Server database. It is a simple process to bring the database from suspect mode to normal mode. Check out the video and fix the SQL database suspect mode problem.
Free Data Recovery software is an advanced solution from Kernel Tools to recover data and files such as documents, emails, database, media and pictures, etc. It supports recovery from physical & logical drive after a hard disk crash, accidental/inte…
Suggested Courses

592 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