LINQ Query With Multiple OrderBy Statements Added In Loop
May 11, 2012
I have a method in a webservice that has parameter with which users can decide how they want to order their results. This is a List(Of String) with the names of the fields in the order they want to sort them. I know I can normally order on multiple columns by doing the following
Dim test = Bars.OrderBy(Function(x) x.Foo) _
.ThenBy(Function(x) x.Bar) _
.ThenBy(Function(x) x.Test)
However in this case this won't work since I can't chain the ThenBy function because I'm adding the sorting orders in a loop. To use ThenBy I need an IOrderedQueryable collection. This is how I would want it to work
Dim sortColumns = {"Foo", "Bar", "Test"}
Dim query = From b in Bars
For each column in sortColumns
Select Case column
Case "Foo"
query = query.Orderby(Function(x) x.Foo)
[Code] .....
View 1 Replies
ADVERTISEMENT
May 8, 2011
I have a piece of code that loops through the rows in a database and brings out information.
The code is attached to a button(search). To search for data, you enter a phone number, the loop goes through the data rows and bring out the information is it is there.
Everything works great accept I have added a second table to the database.
So do I add a whole new loop statement? Example lets say I had a new data row, how can I add that to this statement so that both tables are searched?
This is the code:
Dim strGetRecord As String = masTxtPhoneField.Text
For validData = 0 To storedtData.Rows.Count - 1
If strGetRecord = storedData.Rows(validData)("fldphone").ToString Then
[Code].....
View 4 Replies
Jan 27, 2011
We are doing a query against an in-memory collection of LINQ data objects. The wrinkle is that we are ordering by a column in a related table whose records have not necessarily been loaded yet (deferred loading:)
Dim oPkgProducts = _
From b In oBillPkg.BillProducts _
Where b.Successful.GetValueOrDefault(Common.X_INDETERMINATE) = _
[code]....
View 1 Replies
Mar 12, 2012
Here's my query dim areas = From job In db.jobs Join area In db.areas
On area.JobID Equals job.JobID
Where job.JobID = id
Select area.Area, area.UnitID
I have two controls in my form
2 textboxes: tbArea1 and tbArea2
2 comboboxes: cbArea1Units and cbArea2Units
I've traditionally used a ForEach loop to cycle through LINQ to SQL results, but this instance doesn't seem to work. By design in the database, the result will always only return up to two possible areas, but no more then that. How can I populate the textboxes and set the SelectedValue of the comboboxes to something like this?
[Code]...
View 2 Replies
Oct 20, 2011
m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder)
here I have DisplayOrder = 0 for 2 fields, so orderby is messing up and not ordering properly. How can I use orderby to order this collection?
View 2 Replies
Jun 20, 2012
I'm having a problem implementing Scott G's Dynamic.vb extension at [URL] in my vb solution. I've searched StackOverflow (80+ Q&As) and numerous other sites without much luck. I'm using VS 2010.I've included Dynamic.vb in a problem with no root namespace, and then added a reference to that project in my main one. I'm getting intellisense for 4 overloads (rather than 2) so I'm pretty certain that the extension is in scope.I was having a tough time with clauses, especially the OrderBy as Scott demonstrated. If I simply pass a string as Scott's VB example did I get the error "Overload resolution failed because no accessible 'OrderBy' can be called with these arguments."
The line of code is:
Dim FilteredComponentList = From Component As MX.Component In ComponentList.AsQueryable _
.OrderBy("Name")
So I found other references that stated to pass a Lambda expression. So I tried this and at least I get no error, even if the sort function still doesn't seem to work. Here is the code that compiles and executes.
Private Sub SortByColumn()
If Not cmbComponentFilter.SelectedItem.ToString = "All" Then
Dim FilteredComponentList = From Component As MX.Component In ComponentList.AsQueryable _
[code]....
When I interrogate the dgvComponents.Columns(e.ColumnIndex).Name it gives the objects property I wish to sort by, but the sort still isn't working. I'm concerned why I can't get Scott's implementation to work, but I've heard his keynotes and read his blogs, so I'm guessing the problem lies with my implementation.
I'd like either to work but need to understand why as well. Why doesn't passing a string work? Isn't the PARAMARRAY declared in the function optional?
View 1 Replies
Jan 24, 2010
I am trying to pass a lambda function to Linq's orderby and cannot get it to work.
The relevant code is:
Dim myordering = Function(m) m.Count
If isAlphaOrder Then
myOrdering = Function(m) m.Key 'Order by Alphabet
[Code].....
View 4 Replies
Dec 8, 2009
I have a form with a tab control, containing a small number of tab pages. I'm writing a sub procedure to clear the controls within a groupbox for the selected tab. A selected tab will only ever contain ONE groupbox and within a groupbox will be command buttons, labels, text boxes and possibly a combobox. The first block of code below firstly finds the groupbox within the selected tab. The next part loops around all control type and if of type texbox clears the text.
Now hears the head scratcher/confusion it error's with :-
Unable to cast object of type 'System.Windows.Forms.Button' to type 'System.Windows.Forms.GroupBox
Which I don't understand as I cant see where Im converting objects simply looping through all controls and then ONLY if type of control is textbox then clear text.
'Loop around all controls in form, simplified that all controls
'are within a SINGLE groupbox and clear contents or reset to default value
Dim groupbox = (From grpbx In tabAdmin.SelectedTab.Controls _
Select grpbx = DirectCast(grpbx, GroupBox) _
Where TypeOf grpbx Is GroupBox)
[Code] .....
View 1 Replies
Dec 7, 2010
I have a VB .Net linq query that I want to return values from two tables. I currently have this:
Dim query = (From c In db.Client _
Join u In db.Users _
On u.UserID Equals c.UserID _
Where (c.ClientID = 1)
Select c, u).ToList
query (System.Collections.Generic.List(Of )) returns several rows as expected each item containing a c and a u.
How do I iterate through the queries collection?
View 1 Replies
Jul 26, 2010
My LINQ query contains the following Group By statement:
Group p By Key = New With { _
.Latitude = p.Address.GeoLocations.FirstOrDefault(Function(g) New String() {"ADDRESS", "POINT"}.Contains(g.Granularity)).Latitude, _
.Longitude = p.Address.GeoLocations.FirstOrDefault(Function(g) New String() {"ADDRESS", "POINT"}.Contains(g.Granularity)).Longitude}
The query works, but here is the SQL that the clause above produces
SELECT [t6].[Latitude]
FROM (
SELECT TOP (1) [t5].[Latitude]
[Code]....
but this produced an error: "A group by expression can only contain non-constant scalars that are comparable by the server."
View 1 Replies
Sep 22, 2009
I know that LINQ queries are deferred and only executed when the query is enumerated, but I'm having trouble figuring out exactly when that happens.Certainly in a For Each loop, the query would be enumerated.What's the rule of thumb to follow? I don't want to accidentally enumerate over my query twice if it's a huge result.
For example, does System.Linq.Enumerable.First enumerate over the whole query? I ask for performance reasons. I want to pass a LINQ result set to an ASP.NET MVC view, and I also want to pass the First element separately. Enumerating over the results twice would be painful.It would be great to turn on some kind of flag that alerts me each time a LINQ query is enumerated. That way I could catch scenarios when I accidentally enumerate twice.
View 3 Replies
Oct 15, 2011
I have a question regarding the dataset usage in Reporting Services. I have a stored procedure which returns multiple select statements (result tables), and I created a Dataset in Reporting Services 2005 with this stored procedure. The problem is that I can not reference the second or third result table, and I can only use the first select statement fields. Is this the limitation on Reporting Services Dataset or is there a way to use multiple table results in one dataset?
View 1 Replies
Jan 5, 2010
I need an additional loop argument within an If statement that resides in a very large do...loop block. It will speed the application considerably if I can have the do...loop block loop prematurely. I already have the remaining code after the additional loop argument in a large if...elseif block to achieve the result, but making it simply loop instead of going through this would speed the application.
View 8 Replies
Jun 22, 2011
've got a function that takes two parameters (a delegate and an integer) and then creates a LINQ MethodCallExpression, which it uses to gets the results:
Public Delegate Function CompareTwoIntegerFunction(ByVal i1 As Integer, ByVal i2 As Integer) As Boolean
Public Function Test(ByVal pFunc As CompareTwoIntegerFunction, ByVal i1 As Integer, ByVal
[code].....
View 1 Replies
Jan 15, 2010
I am using Visual Studio .Net 2008. I am using "Structure" statement for my work. It is working with me perfectly. I am not sure if Understand the structure statement very well because it does give me wrong answer if I change the position of "Redim" of the structure elements. My problem is the structure is using "Redim" in many places which is a dangerous procedure. I do not know how exactly to explain my problem because the structure in my code is used widely and called in many subroutines. I will try to explain with the below simple code:
[code]...
My question is: How can I move the all "Redim" statements outside the loop so that the Redim happens only ones? What does "TheCollection(Iteration + NumberOfMembers).TheResult" does take? Is it zero or what?I searched the web but I could not find a proper website or article which explains the structure. The only useful link I found is this:[url]
View 6 Replies
Jan 13, 2011
I have a question about using nested IF statements in a SQL query. I have a select statement that calculates a semester grade -- Dim sqlStr As String = "SELECT 'XXX-XX-' + right(socSecNumber,4) As [Student SSN], Round((firstExam + secondExam +(2*finalExam))/4, 0) AS [Semester Average] FROM Grades that I am displaying the results in a datagridview. I can successfully display the masked social security number and the Semester Average but I also need to convert the Semester Average to a letter grade to display in a newly created column for Grade. Can this somehow be done with nested If or Case statements within the SQL statement or is there a way to pass the Semester Average information as a variable to a nested vb If statement? Basically, I am needing to know how to display the letter grade to the datagridview using this criteria:
[code]...
View 16 Replies
Jun 5, 2008
I've recently ported my website from 2005 to 2008, and I'm using LINQ Queries to implement a search. The issue is that none of the fields are mandatory, so I've had to implement a dynamic LINQ Query (sic?). Here's the relevant code -
Public Function searchQuery(ByVal titleType As String, ByVal titleName As String, _
ByVal configMgr As String, ByVal lifecycle As String, _
ByVal CIType As String, ByVal recordsPerPage As String) As IEnumerable(Of
[code].....
View 2 Replies
Mar 27, 2012
I have an asynchronous task that is executing a function. The function does not contains any looping statements, but instead it is executing series of sql commands on sql server. Now, i have a button on my window that can cancel these sql operations. In other words, cancel the whole asynchronous task.
I know that this technique will require CancellationTokenSource and CancellationToken to cancel the task, but i've seen many examples on the internet and all of them are showing that the function that task is executing contains loop statements in which they are checking for IsCancellationRequested boolean property. But in my case, it is not so. My function does not have any loop statements in which i can do a check on this boolean property.
View 3 Replies
Mar 20, 2011
I have several text boxes I need to validate. I am not understanding how to validate in Visual Basic 2008. So I deployed standard If Statements to handle bad data. I am having two problems.
Lets say the user entered wrong data, example, numbers; an error message is displayed. The text boxes cannot contain numbers, be left empty or contained characters, like !@#$. The problem is if the user enter text, and then entered a wrong data again the code does not work or display error message. How can I make the conditions so that they throw out error message even if the user had previously entered good data.
Another example: If the user enter good data in text box 1 and bad data in text box 2, the error message does not work.
Finally, how do I filter out characters to allow only text. Is there a way to use this code on multiple text boxes with out writing the entire code for each form control?
Here are the conditional statements.
Private Sub btnDataSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDataSubmit.Click
If IsNumeric(txtDataEntry.Text) Then
lblErrorDisplay.Text = "Invalid Name!"
lblErrorDisplay.BackColor = Color.Red
[Code] .....
View 12 Replies
Jul 14, 2011
given this function:
Public Function Search(ByVal StartIndex As Integer, _
ByVal MaxResults As Integer, _
ByVal AccountNumber As String, _
ByVal LastName As String, _
[Code]....
instead of what I expected:
Select count(*) from remitline where lastname = "smith"
What am I doing wrong building up the where clause? I'm using Castle ActiveRecord 2.1
View 1 Replies
Aug 6, 2009
if there is that much of a performance gain in running a LINQ stored procedure versus a LINQ query?
View 1 Replies
May 3, 2011
I'm having some problems getting a query to run based off another query. Here's the database diagram to give a little background. The primary keys for all the tables are automatically generated by identites. The first 2 insert statements (Donation and Food_Donation) work but I can't get the last insert into Donation_Details to work. Here's the code so far:
View 2 Replies
Sep 14, 2010
I have to join two main tables, and I need to filter the results by elements in an ASP.NET web form. These filters are created on the fly so I have to use a lot of where extensions to filter the query. I want to execute the query with as optimized SQL as possible.
I am first doing a simple join between TW_Sites and TW_Investigators. Then there are two sub-tables that are involved. TW_InvestigatorToArea and TW_InvestigatorToDisease. While most of the where clauses are working fine, I have found a performance issue that won't be an issue right now, but will be an issue as the table gets bigger.
The arrays DiseaseCategories and DiseaseAreas would be the results of a CheckBoxList result.
Protected Sub LoadResults()
'Get Dictionary of Filters
Dim FilterDictionary As OrderedDictionary = Session.Item("InvestigatorFilterDictionary")
' Initialize LinqToSql
[code]....
View 2 Replies
Sep 14, 2010
I have the following code block. I'm tired of typing the same IF statement to check if the string has any lenght before assignning them to the class properties of Employee.
Is there any better to accomplish this?
Dim title = txtTitle.Text.Trim
Dim firstName = txtFirstName.Text.Trim
[code].....
View 6 Replies
Mar 2, 2010
I need to write a do until statement. 2 of them actually. 1st one records all of the income and then one that records all of the expense. Then they need to be add to figure a profit or a loss.
View 12 Replies
Jun 25, 2009
I have a connection to a MS SQL database, which I understand is capable of handling multiple SQL statements in one Execution, ie
Code:
Using cmdExe As New System.Data.SqlClient.SqlCommand
sSQL = "Delete * from mytable where UniqueID=123;Insert into mytable (UniqueID, Field) values (123, 'something')"
cmdExe.CommandText = strSingleSQLLine
cmdExe.ExecuteNonQuery()
End Using
will delete from "mytable" and insert a new record all at once. This is great, but I want to expand upon that to use parameters because using string concatenation in my SQL queries is a bad idea. Now my question is this. If I add a parameter which is used in multiple SQL statements, do I have to add the parameter VALUE twice to the command object? ie, will the following code work?
Code:
Using cmdExe As New System.Data.SqlClient.SqlCommand
sSQL = "Delete * from mytable where UniqueID=@uniqueID;Insert into mytable (UniqueID, Field) values (@uniqueID, 'something')"
cmdExe.Parameters.AddWithValue("@uniqueID", 123)
[code]....
There are two questions here actually...can I add the parameters before setting the command text, and do I have to add the same parameter over and over again?
View 1 Replies
Apr 21, 2009
I'm trying to use ADO to create several tables at once, into MS Access. Is it possible to do multiple statements in the one operation?[code]This fails due to a "Syntax Error in CREATE TABLE statement", although each of the create statements work on their own perfectly. Is there a way of doing this sort of thing? There will also be statements to add constraints, add indexing, etc., and I'd really like to be able to do it so that I don't have to split up the string into separate parts.
View 8 Replies
Jul 27, 2010
Usage of colon (i.e. : ) for multiple statements?
View 1 Replies
Mar 31, 2011
Forgive my ignorance on this.I have this LINQ Query:Dim ngBikersDataContext As New CarBikeWalkDataContext
bikersList = (From c In ngBikersDataContext.Reg_Bikers _
Order By c.L_Name _
Select New Bikers() With { _
.BikerID = c.BikerID, _
.F_Name = c.F_Name, _
[Code]...
with the error "Overload resolution failed because no accesible 'Select' accepts this number of arguments."
Over the "NEW" I get an error " ')'expected."
View 1 Replies
Mar 10, 2011
I am just starting to learn the visual basic language so i am trying to make a simple application where a user can put in it's first and last name or else the application exists.
I manage to do this fine untill i get to the point of ending one if statement and starting another in the same button..
(in the form i have button1, button2, label1, label2. Button2 is only a "quit" button)
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[Code]....
What happens when i run this is that i can put in the first name but then when i click yes the application closes.
View 14 Replies