Syntax For Order By Clause In Linq To Sql That Has Select New With
May 25, 2011
I have a LINQ to sql statement that joins 2 tables. I would like to add a order by clause on one of the columns. However the order by clause does not seem to take effect at all. right syntax in VB.net to achieve order by in the following:
Dim query = From dtIt In dbsomecontext.mytable
Join dtIl In dbsomecontext.anothertable On dtIt.ItemID Equals dtIl.ItemID
Where dtIl.IsAvailable = True
Order By dtIt.manufacturer
I have following code that creates Linq query. I've never used Linq until today and having problem with "Order By Clause"[code..]
If I run the code, I get following error.Name 'p' is either not declared or not in the current scope. How come p!Weight in "Select Clause" works but not in "Order By Clause"?
Dim groupedData = (From p In pData _ Group By p.TruncParam Into Group) _ .SelectMany(Function(g) g.Group) _ .Select(Function(d, idx) New With { _
[Code]...
When the TruncParam changes, I would like the index (idx) in the Select clause to reset to 1. So, in the list above, the Index should be SOLUB0001, SOLUB0002, INSOL0001, INSOL0002...CLRES0001, SUMCA0001, SUME0001.
I am brand new to programming I'm trying to finish my last programing assignment for the semester and have hit a wall. I'm suppose to create a database that list a countries name, that countries currency type, and the conversion rate from 1 USD to a selected currency type.I'm using VB 2010 the connection method I'm using is Microsoft Access Database File (OLE DB)
here is my code i have high lighted the part of code in red that is giving me the problem and entered my question in green text at the point i keep getting the error. Private Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.Click
Pretty new to VB.Net. Having a bit of trouble here with something I though should be simple.Keeping it simple. Let's say i have a Document table with "Name" that I want to search on (in reality there are several other tables, joins, etc ..). I need to be able to build the query where clause based on string values passed in.
Example - user may pass in "ABC" or "ABC DEF" or "ABC DEF GHI".The final query would be (syntax not correct i know)Select * from Documents Where Name Like %ABC% AND Name Like %DEF% AND Name like %GHI%
So, I though I could do something like this.
Dim query = From document In _context.Documents << loop based on number of strings passed in >> query = query.Where( ... what goes here?? )
For some reason, being brain dead or something, I can't figure out how to make this work in VB.Net, or if I'm doing it correctly.
Dim q = From definition In definitionList _ Where definition.ValueDefName.Contains(criteria)[code]....
I have already looked into this answer: LINQ - dynamic WHERE clause?Unfortunately, it doesn't work for me using .net 4.0. When I attempt to pass the criteria string in it ask for a predicate. The end goal is to add any of these:
to be passed into the query depending on what checkboxes the user has selected. How can I create a dynamic where clause in linq to sql? Is there new syntax for passing in a where clause as a string?
Let's say I have Plans and Documents Dim myPlans = _context.Plans.Where(predicate1) Dim myDocuments = _context.Documents.Where(predicate2)
I have structured the where clause for each using PredicateBuilder. So, myPlans and myDocuments have a correct SQL statement. What I'd like to do is join these two tables into one linq statement. The problem I'm having is that, by default the AND condition is joining the where clauses.
myPlans Where clause : (p.name like "%test%" AND p.name like "%bed%") OR (p.description like "%test%" AND p.description like "%bed%") myDocuments Where clause : (d.name like "%test%" AND d.name like "%bed%") OR (d.description like "%test%" AND d.description like "%bed%")
When I combine the two the desired result Where clause is: Where (d.ID = p.ID) AND (myplans where clause above) OR (mydocument where clause above). Meaning, I'd like the two where clauses in each of the tables to be "or" instead of "And".
The current result where clause is: Where (d.ID = p.ID) AND (myplans where clause above) AND (mydocument where clause above). Meaning, I'd like the two where clauses in each of the tables to be "or" instead of "And".
I'm forming the statement like this: Dim test = From d in myDocuments _ Join p in MyPlans on d.ID Equals p.ID _ Select d.Name, p.Name
Right now our queries can be driven through the DataTable Select statement. However, utimately we want to end up with more complex queries. We think Linq is the answer, but can't find anyexamples of this.Here is the sysnopsis:I have a dataset containingdatatable(s) of informationI have a datatable containing business rules as strings like:
So I have a query I'm doign where, at the moment, the places to search are set in stone, but the values that maybe be searched for is variable.Right now, I have a drop down menu that allows you to choose a character class. This limits the items to a specific class. Then I can filter on text from a textbox.
However, each item in the list has a source, based on the book it is published in. I want a user to be able to choose several from a checkbox menu, then pass those values for inclusion in the criteria for finding items.
The problem I'm having is finding the most concise way to do dynamic WHERE clauses. There are several examples out there, and even a couple don't seem to want to do exactly what I'm doing, and I'm having trouble determining if it will work for me.
Dim queryX = From m In db.Master Where m.Field = value Group Join d In db.Detail On m.Id Equals d.MasterId Into Group Where d.Field = value
In English, I want to join the master and detail tables, specifying conditions on each. But this causes the following compiler error:
"Name 'd' is either not declared or not in the current scope."
It works if I put this same condition in functional form:
Group Join d In db.Detail.Where(Function(x) x.Field = value)
but I think this is more typing, harder to understand, and introduces that irritating dummy variable. I really would prefer to use the query comprehension syntax. Is there a way to accomplish this?
i want to use a if, then statement in a where clause in linq to sql. Is this possible? I'm trying to achieve the following:
[Code]...
I'm trying to only add the And If if intLink_pk > -1. If it = -1, then i don't want the and clause at all. Is this posssible within the linq to sql itself?I understand i can write 2 entirely different selects, but if I can't get this done, I may have to write about 50 of them as I want to use multiple Ands if certain conditions are met on the form, such as chk boxes etc.
I have two DataTables, PersonInformationDataTable on which i only know about a "CityName" field, and another CityInformationDataTable, which has a few constant fields and i do a query like
ResultOfQuery = From person As DataRow in PersonInformationDataTable From CityInfo As DataRow in CityInformationDataTable Where (person("CityName) = CityInfo("CityName")) Select ?? all person info ?? , Country = CityInfo("Country"), Tongue = CityInfo("SpokenTongue")
I would like again all the person fields with their values in the enumerable result.
the result would be like : name=. I don't know how many fields or the fields name of PersonInformationDataTable in advance. With a SQL Query, i could write a string with a loop on CityInformationDataTable columns and have a custom select string like : "Select Name,
I'm using a select statement to select data from an Access DB but I'm using. I can select the data perfectly but when I use the Where clause it doesn't select any data and the data I'm looking is in the DB.
I design a database in datbase.mdb which have a table name Fuel.The primary key Column Name is ID which data type is AutoNumber (Long Integer)User select the ID number and i run he following statement but error occurEID= combo1.text.trim()userid= Convert.ToInt64(EID)Strsql= Select a1,a2 from Fuel where ID= 'userID'ERROR is Creteria DATA TYPE MISMATCH or No record foundPlease
I design a database in datbase.mdb which have a table name Fuel.The primary key Column Name is ID which data type is AutoNumber (Long Integer)User select the ID number and i run the following statement but error occur
EID= combo1.text.trim() userid= Convert.ToInt64(EID) Strsql= Select a1,a2 from Fuel where ID= 'userID'
ERROR is Creteria DATA TYPE MISMATCH or No record found?how i pass the where clause creteria if number datatype?and In accesss i read AutoNumber is Long Integer i also convert into INT64 but error is still there.
I have a month and a year dropdownlist which give me the following string 01/2012 The date format in my db is "2012-01-01 00:00:00" but when I select an individual date and put it in a message box it converts to "01/01/2012"
I've altered my select statement below to reflect the converted date. However Im still not given the correct details. Any ideas? Is there a particular format that I need to use when dealing with a timestamp field? Can I even use the "Right" function in a select statement?
Dim newRecordDate As String = val1 & "/" & ComboBox2.SelectedValue Dim sql2 As String = "Select CatA, CatB, CatC, Cost, Currency, MarketingCode, Comment, RecordDate from vw_tblP_Usage_Details where puid = '" & puid & "' right(RecordDate, 7) = '" & newRecordDate & "'"
I have a combo with 6 text NA,PO,FA,GO,VG,EX and I want to do a Linq query upon the selected value in this combo used as field in the where clause. for example:
'if "NA" is selected : Dim query = from t in db.table where t.NA > 0 Select t 'If "PO" is selected : Dim query = from t in db.table where t.PO > 0 select t
How to do this in elegant way without writing 6 if statement or using "Select case"
I am using VS2010 windows application , SQL server 2008 express at backend.I am designing a windows form with fields to search records in database.Say there are 3 fields in the form :
1) material no 2) material group 3)creation date the corressponding table in database with above fields is " Material_master" User can search materials in the database by entering any of the above fields.No I want to write a query where if user doesn't enter anything then my query should work like
"select * from materialmaster "
if only material no is enterd at screen then
"select * from materialmaster where MatNo = materialno "
if both date of creation and material no enterd then
" select * from materialmaster where MatNo = materialno and Date = creationdate "
In other words , field with no values in it should not be accounted in the where clause. Only one query I want to write.How we can achieve this in VB.net windows application?
how to select only records from Excel that meet a certain criteria? For example, this works:
Dim daExcelData As New OleDbDataAdapter Dim cnExcelData As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & txtInputFileAcc.Text & ";Extended Properties=Excel 8.0;") cnExcelData.Open()
how to translate a simple SQL LEFT OUTER JOIN with a two condition where clause into a working Linq-to-Entities query. There are only two tables. I need values for all rows from Table1, regardless of matches in Table2, but the WHERE clause uses fields from Table2. In SQL, the two parameters would be Table2WhereColumn1 and Table2WhereColumn2, and the query (which works) looks like this:
I've tried using Group Join with DefaultIfEmpty(), as well as an implicit join (without the actual Join keyword), and I only get rows for items that have values in Table2. I'm sure this won't help, but here's an example of the Linq I've been trying that doesn't work:
Public Shared Function GetProfilePreferencesForCedent(ByVal dc As EntityContext, _ ByVal where1 As Int32, _ ByVal where2 As Int32) _
Dim executeB As Boolean Select Case myVariable Case "a" 'some code Case "b" 'some code Case Else End Select
If myVariable is "a", control will go into the first case statement. Now let's say if myVariable = "a", but inside a's case block, I find that executeB is true, is it then possible to jump to the second case?
I'm building a dynamic query in my ASP.NET MVC project by the following: [code]Where basically the strWhere is a string that I build up a dynamic filter depending on what the user selects to search on.This works great until I need to add a date comparison to the date clause.[code]Which will end up as:"SELECT VALUE userInfos FROM MyDBEntities.UserInformations AS userInfos Where userInfos.BirthDate <= 10/09/1992"..But when i try to execute the query with the ToList whenever a date is in the where string i get the following error:The argument types 'Edm.DateTime' and 'Edm.Int32' are incompatible for this operation. Near WHERE predicate, line 1, column 103.
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) = _
I got a SQL statement where am selecting from an access database in vb but I get this error; "syntax error in query expression select sum(brought_qtty)" when I run my program. I imagine am doing the right thing but seems am not. How can I adjust this select? The code is below:
"select distinct(brought_price) as [Price], select sum(brought_qtty) as [Ordinary] from brought_coffee where " & _"coffee_grade=O, select sum(brought_qtty) as [Premium] from brought_coffee where" & _"coffee_grade=P, sum(brought_qtty) as [Total Qtty]" & _", sum(brought_paid) as [paid], " & _"sum(brought_bal) as [Balance]" & _"from brought_coffee, farmer where brought_date=#" & dtc.Text.Trim & "# and farmer_centre='" & cc.Text.Trim & _"' and farmer.farmer_num=brought_coffee.farmer_num"