Asp.net - Select Query In LINQ Based On Foreign Table
Mar 2, 2011
I have 2 Tables , OrderDetails and Requests In my LINQ to SQL dbml file. OrderDetailsID is a foreign key in Requests Table.
I want to write the query to get the sum of UnitCost from OrderDetails based on OrderId. And If there is a row in Requests Table for each OrderDetailsID, and the Requests.Last.RequestType="Refund" I want to reduce the total refund amount from the main sum otherwise If there is no row based on OrderDetailsID, add to sum.
Here is the way I implement that. I am looking to prevent using "For each".
iRefund = (From od1 In dc.OrderDetails _
Where od1.OrderID =1 _
Select od1.UnitCost).Sum
I have 2 Tables , OrderDetails and Requests In my LINQ to SQL dbml file.OrderDetailsID is a foreign key in Requests Table.I want to write the query to get the sum of UnitCost from OrderDetails based on OrderId.And If there is a row in Requests Table for each rderDetailsID, and the Requests.Last.RequestType="Refund" I want to reduce the total refund amount from the main sum otherwise If there is no row based on OrderDetailsID, add to sum
I'd like to take all suggestion either in C# or VB.NET.I have a DB diagram like the image below. I also include the database script here [URL]In the Students table, CountryId and RoomId column are allowed null. Because some records do not have info about room and country yet.Also, some students do not have essays.I'm doing a joint query with all tables. I want to select all students to project the result like this:Wanted query result.
Here's my current query that gives the result like the image below:
Dim db As New DBDataContext Dim query = From st In db.Students _ Join c In db.Countries On c.Id Equals st.Id _ Join r In db.Rooms On r.Id Equals st.RoomId _
[code].....
current query result I got only one result back because I have (2) William NoMan record in every table. But I don't get anything about others, like (3) Sync Master who has everything but RoomId.What do I need to modify the query above so it will give me all students like in the wanted query image above?
I have two tables Employees and CafeLogs. Some employees can be cashiers and also customers at the Cafe shop.
Table structures:
Employees: EmployeeId(PK) , FirstName, LastName CafeLogs: LogId (PK), CashierId, EmployeeId, Value, => CashierId and EmployeeId are the data from column EmployeeId of Empoyee table
Table relationship:
Employees 1:N CafeLogs (CashierId (FK))
[code]....
Right now I know how to select only LogId, Employee's name, and , Value, not with Cashier name yet.
Dim query = From log In db.CafeLogs _ Join emp In db.Employees On emp.EmployeeId Equals log.EmployeeId _ Select log.LogId, emp.FirsName, emp.LastName, log.Value
I have a table (Projects) which is linked to projectVersions on projectID..projectVersions contains several columns on which I'd like to filter a returned project (and associated projectVersions) list. For example there is a "capacity" column and a "country" column. I am doing a filtered list of projects on one page and I'd like to include all projects where any one of the associated projectVersions has a capacity of 750ml and a country of "France" for example.It may be that a particular parameter is not set and so I pass a zero to indicate not to filter on that.I guess this needs some kind of subquery as when I try and do something like this: [code] it doesn't work as the "xxx" bit, being one-to-many, expects me to specify an item to get at the entities within and yet I want to query where ANY of the associated versions match one of the criteria.
I have a query that I have to run that requires me to get rows from a table based on the value of a field in another table (which I have gotten earlier). I currently have it done like this (simplified).
i try to convert this kind of sql query into linq in visual basic, but i get stuck on how to make a percent.. I also don't know how to use linqpad for creating this linq
SELECT CASE RIGHT(PICName, 3) WHEN '(P)' THEN 'Problem' WHEN '(R)' THEN 'Request'
I have the following routine (that works) but which is messy to update owing to the hand-typed strings it uses:
Private Sub ListDefaults() Dim conn As New SqlConnection( _ "server=bas047AUTODESKVAULT;Database=DWGDetails;Integrated Security=SSPI") 'Dim conn As New SqlConnection( _
I've got a datacontext and created a binding source using LINQ to sql but cannot filter said bindingsource. The supportsfilter of the bindingsource is set to false ? why ? I can't find any info to say that I cannot filter a binding source based on a linq query.[code]
I have the following LINQ-to-Entities query:[code]This will give me all the resident assignments for the current year/term. Then I have this LINQ-to-Entities query:[code]This will give me all the rooms. I want to iterate through the assignments and based on what room is assigned update the occupancy in reset_occupancy. I'm not 100% sure how to accomplish this. Here is my pseudo code of what I want to accomplish:[code]
Linq to SQL query to Select the maximum "MeanWindSpeed" value? The database name is "WeatherArchives" The TableName is "TblValues" The Column is "MeanWindSpeed" And Also, I would like to have a query to get me the Max "MeanWindSpeed" in each year,
Dim MyQuery = From c In xdoc.Descendants() _ Where c.Attribute(OriginY) IsNot Nothing _ Order By Val(c.Attribute(OriginY).Value), Val(c.Attribute(OriginX).Value) _ Select c.Attribute(UniStr)
Right above you can see my First! linq attempt! And here comes my first question.
How can i select more than one column in a linq query in vb.net?
For example... Select c.Attribute(UniStr) AND c.Attribute(OriginY)
I would like to know if it is possible for a Table Adapter to reference a query as opposed to a table. Currently my Table Adapter references a table in my SQL database, but I wanted to know if it was possible to have it reference a query, which selects a table from another database?
SELECT C1, C2, C3 FROM T1 WHERE T1.C4='xyz' AND EXISTS (SELECT 1 FROM T2 WHERE T1.C17 = T2.C24) ORDER BY C3
I'm using EF CTP 5, so I have a DBContext variable named dbc, which includes DBSet objects T1s and T2s, based on POCOs T1 and T2.
In LINQ I write
DIM IND = From i In dbc.T1s Where i.C4 = "xyz" And (From t In dbc.T2s Where i.C17 = t.C24).Any Select i.C1, i.C2, i.C3 Order By C3
Running the query I get the error message "Unable to create a constant value of type 'T2'. Only primitive types ('such as Int32, String, and Guid') are supported in this context." When I omit the inner expression (third line in the LINQ code), the query runs fine. I tried switching the orders of the inner comparison, to be t.C24 = i.C17, with no effect.
I am starting with Linq to SQL in VB.NET, and trying to figure out how to make a simple query to a database.I want to do it all programaticly.I have made a connection to the database with a connectionstring, and this works fine - I can get a message if the database exists or not.But when I want to query a table, I am missing the part where I connest to the table. I have googled a lot to find an answer for thi, but [code]
I was able to use it for querying out info from an XML file but now i have to use the DBF file from a folder. where i can find out how to query out DBF table using LINQ. I basically need to get data from a column of a DBF table.
I have a query that can be summarised in SQL as follows;
Select S.StockCode From StockToCheck As S
[Code]....
Where the S var is a list of strings. This gives the error 'S' is not declared and points to the S in the function call / join (GetPOSStock). So it does not seem possible to do this in Linq, can anyone confirm?
I have 2 tables Table1 with columns [BId,Name,Amount] Table2 with columns [CId,BId, ExpenseType,Expense]. BId Is the foreign key in Table2. The Amount field in Table1 is always higher than Expense in Table2. I need to update the values of Amount (increase or decrease) based on value of Expense and I want to do it in single query in LINQ. Eg If the Expense has to be updated with 200, I would decrease(negate) Amount value with 200. If Expense is reduce to 100 then the Amount is increased by a value of 100.
how to select multiple table in vb2010? i trying to create a login so i need to retrieve the data in 3 different tables in one database i have a code but not work.[code]
My following code is only retrives number month(1,2,3,4....12)and not month name(January,February,.....December).Before that i had try using function datepart, Monthname and date_format but i still din get my answer.[code...]
I'm developing an application to allow engineers to conduct simple single table/view queries against our databases by selecting Database, Table, Fields.
I get how to use the Dynamic LINQ Library Sample to provide for dynamically selecting the Select, Where and Order by Clauses at runtime but I'm at an impass on how to allot for table choice.
Is there a way to provide for dynamically selecting the "from" table at run time
EDIT
So Both of the answers seem to be saying the same general Idea. I'm going to try to convert the C# into VB and get it to work.
The first answer converts to
NotInheritable Class DataContextExtensions Private Sub New() End Sub
I'm working on an ASP.NET 4.0 site, which I inherited ownership of. It has a number of existing LINQ datasources pointing to individual tables. For example, to the Patient Encounter Summary table in SQL Server. The problem is in displaying the data there. It's a normalized database, so that table contains (for example) the provider ID, rather than the provider name.
It's simple enough to join the Patient Counter Summary to the Providers table (in SQL)... but how does one do that in ASP.NET? I'm not sure of the correct nomenclature, but the 'mid layer' is VB.
I have a stored procedure that I need to be able to change the table name that the select statement in the stored procedure uses depending on a user input, however I am having a problem with the code:
Code: CREATE PROCEDURE [dbo].[spQryParentComments] @projTable as varchar(50) AS
I have created a DataSet.Within the dataset I have 2 DataTables.I have created a DataSet.Relations between the two tables.Now, using DataSet.DataTables.Select.... Would it be possible to perform a search similar to this in SQL?
SELECT * FROM DataTable1 INNER JOIN DataTable2 ON DataTable1.KeyColumn= DataTable2.KeyColumn
I used following code searching records from a table in MsAccess and displaying in a Listview and it is working fine with the search criteria based on Discription.
CODE:
I also tried the above code to search records on the base of CustId and it worked fine too.My table DailyTransaction in MsAccess is as under:DTDate, DTTime, CustId, Description, Quantity, Price, Amount, AccountNumber, Name
Now I want to Search records on the base of Date I tried the following but it did not work.
Dim cmdText As String = "SELECT * FROM DailyTransaction WHERE DTDate=' " & TextBox1.Text & " ' "
Also i want to make following sort of query to retrieve data between two dates and to display the sum of amount group by DTDate. I could sketch following query and deifinitely it is so wrong with Syntex.Select * From DailyTransaction where DTDate Between textbox1.text AND textbox2.text Group By DTDate AND SUM(Amount)
Is there a way to use Meta Tales or Table names to Construct a dynamic query in LINQ?
foreach (var metaTable in db.Mapping.GetTables()) { var queryType = metaTable.RowType.Type;
[code]....
Is there a way to do something like this? The attempt above yields the error:Could not find an implementation of the query pattern for source type 'System.Data.Linq.ITable'. 'Select' not found. Consider explicitly specifying the type of the range variable 'q'.
I'm trying to query old Access database tables and compare them with SQL Server tables.They often don't have primary keys, or they have extra fields that had some purpose in the nineties, etc., or the new tables have new fields, etc.I need to find records - based on a set of fields specified at runtime - that are in one table but not another.So, I do this kind of query all the time in SQL, when I'm comparing data in different tables:
dim fields_i_care_about as string = "field1, field2, field3" 'This kind of thing gets set by a caller, can be any number of fields, depends on the 'table dim s as string= ""
[code]....
It tells me it can't convert a Boolean - Is there any way to do this without Linq expressions? They seem far more complex than what I'm trying to do here, and they take a lot of code, and also I can't seem to find examples of Expressions where we're comparing two fields in a subquery.Is there a simpler way? I know I could do the usual EXISTS query using JOIN or IN - in this case I don't need the query to be super fast or anything. And I don't need to use a DataTable or DataSet - I can put the data in some other kind of object.