.net - Write A Linq To Sql Query To Find Records Where Field Name Can Match One Of Dynamic Number Of Strings?
Mar 21, 2012
I have users check off lab facilities in a UI. I want to use linq to fetch corresponding records for all of the labs that they have checked off. Basically,
Dim myRecs = (From l As EpiData In myDataContext.EPIDatas Where l.facility= _
one of the checked labs
So basically, I need to write a linq query where the "strings" to match are determined at runtime. Is there any way to do this easily? I know that there is a library out there called dynamic LINQ, but (1) it's in C# and I'm writing in VB (2) I'm really just looking for a single, simple solution for this single case.
way to write the LINQ query. The parent class is simply a student's name and a list of test score data. The child class is a single test score datum. I want to find the worst (or best) score out of all of the TestScore values and then identify the student who had the best score.
Dim query = From s In studentList _ Where s.ScoreList.Select(Function(d) d.TestScore).Min _ = studentList.SelectMany(Function(g) g.ScoreList).Select(Function(h)
Is it possible to use regex with Range.Find.Text or set the Word.Range according to a regex in word automation? I just want to find strings that match a regular expression an manipulate them.
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?
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."
I need to count the number of records that match on the GIDs from the 'Directories' table (GID) and the 'ClientSubscriptions' table (DirectoryGID), and also the 'FranchiseGID' from both; as follows:
Dim iSubscriptionCount
SQLCommand = "SELECT COUNT(*) AS Counter FROM Directories.GID, ClientSubscriptons.DirectoryGID FROM Directories, ClientSubscriptons WHERE Directories.GID = ClientSubscriptons.DirectoryGID;"
[CODE]...
I need to determine whether or not to show a menu option based on the above.
Full Code: Default.asp
<!--#include virtual="/System/Startup_Admin.asp"--> <!--#include virtual="/Admin/FranchiseAdmin/DirectorySetup/i_Directory.asp"--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
I've got a table that caches calculated values for certain dates. I want to use LINQ to select all rows where the calculated value fields are null.But when I use isNothing I get an error that LINQ can't translate this into T-SQL. Is there a way to select null values with link, like this...?
Dim var = From rec As Record In myDataContext.Records Where IsNothing(rec.calculatedValue) Select rec
Other posts on stackoverflow mostly discuss how to avoid or check for null values with LINQ.
Note: I can't just set cacluatedValue's default to -1 to flag records whose calculated value has not been set (and then select those records) because I run queries that sum/average the calculated values. Selecting nulls seems cleaner and less bug-prone.
I have been trying the following but it returns unexpected results:
Dim xd As XDocument = _ <?xml version="1.0" encoding="utf-8"?> <root>
[code].....
The above result returns both 'element' nodes however it should only return the first where element/subelement@id=1/subsubelement@id=3 However if results.Ancestors. is used it returns the correct 'subelement' and if that line is not included it returns a single 'subsubelement' whih is also correct I don't understand why when mvoing to the 'element' it returns both (I realise both have a subelement with id=1 but I thought each further query would filter out the presvious results)?
I want to write a query that the "where" in the query is a string something like"
Dim query as string= "Name =xxxx and Date > 10 " Dim t = from book in doc.Descendants("books") Select _ [Name] = book..value, [Date] = book..value.... Where (query)
I have a problem finding strings that do not exist in a column in a database. I am going to use linq but its more the 'way' of doing I am concerned with.
I have strings like; MEAL GPST EXLEG EXLG ...etc
I need to find records that does not have this list of strings in, so for example DBML BUT sometimes I can have the string MEALDBML, or more concatenated. So this is a known string of MEAL and unknown string of DBML. I would then want to see that record. I do not know the unknown strings up front, so its a case of feeding in the strings I know are ok, and finding one that are outside that list. I was also thinking of regex?
I have an untyped dataset returned from my WebService. The user wants to dynamically construct a query referencing tables and columns and specifying values to test for.I have looked at Lambda Expressions and the Expressions.Expression Namespace. I think these provide the answer I'm looking for, but I'm not certain how to go about contructing the linq expressions to extract the datarows I'm looking for.
I plan on limiting the result to one datatable that the query will result in and i"ll provide the joins from the user's constructs.For a simple example I have a DataTable with (n) rows called "Table", and in it there is a computed column called "b_IsActive" that has the expression "Convert(IsActive, 'System.Boolean')". The user wants to retrieve all rows in "Table" where field "b_IsActive" is true.
I have a specialized string dictionary of (string, string) (_RulesAndTheirDescriptions) that contains the name (key) and description (value) of methods in a given class. I currently do the following query to search for a match on the key or value and then bind that to a grid.
I've build a large program with many references. F.e.:
System.Data.DataSetExtensions System.Linq.Dynamic
I've to write a Dynamic Linq Expression: [URL]
In my case: Dim query As IEnumerable = ds.Sales.Where(strWhere)
But with System.Data.DataSetExtensions Where is misinterpreted. The compiler expects (Datarow, Integer, Boolean). If I delete System.Data.DataSetExtensions everything is ok with this expression, but I get many other errors, so I need this reference. What can I do that the Where is interpreted correctly?
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.
trying to write a dynamic sql query that fetches data from oracle 10g database. My Where criteria is giving me real problems but i guess it has to do with the oracle data format. The data column is a TIMESTAMP data type storing values like 25-JAN-09 07.06.01.000000000 AM. Am trying to get rows having the columns matching a specific date( ignoring the time values), my where looks like this
WHERE to_date(COMPLY_RUN_DASHBOARD_DATE,'DD-MON-RR')='" & Now.Date & "'"i get the following error :CheckError ORA-01830: date format picture ends before converting entire input string
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 tried the following code: Dim T5NHCEDCavg As Double qry = From employee In empList Where employee.HCEDC = False And employee.X5 = False _ Select employee.DCFSA T5NHCEDCavg = qry.Average
But I'm getting a design-time error that says "Overload resolution failed because no accessible 'Average' accepts this number of arguments." I realize that I'm missing an overload here, but I'm not sure what to use or how to do this. I'm pretty new to LINQ. I've got a dataset in memory that I'm querying, and there is a double-precision property DCFSA, of which I'm trying to get the average based on my query above.
I need to do a query in which I can find all records in a table in which a user enters a search word. The word to be searched for will be a word in a column. If there's a table named solutions and in the table there is a field named description; i need to be able to pull up all records where for example the search word is 'printer' is in the description column. I don't have any code or database structure to show. I first need to know if this can be done. Can someone supply a code snippet example or tell me what SQL keywords will do this, or some pointer?
how can i return the number of records processed from an sql procedure whether it is a select or update/insert query and how can i receive it in the calling method in vb .net.
I am new to VB and trying my hand at the below code. I am trying to determine the number of records for each possible combination. Depending on the outcome of the number of records groups may be combined. I am not able to find the record count for each grouping. Can you please look at the code below and suggest what I am doing wrong?