Sql - LINQ Or DataTable When Number Of Fields Unknown
Feb 25, 2010
I have a dynamic query which returns a DataTable. This DataTable will contain a varying number of columns depending on the selection used in the query. I want an efficient way of filtering the records in the DataTable.
For Example The DataTable contains columns : A, B, C and D
I need to query this data at serveral points in my program. At some point I may need records where A=10 and C>40. At another point I may need records where A<10 and D=90 etc.etc. The selects are dymanmic, I do not now what Columns or values are needed until the code is executing.
I could simply use a DataTable Filter and build the selection string dynamically. I have no problem with this. However I was wondering if using LINQ would be more applicable. I am completely new to LINQ and would like to use it but don't know its capabilities.
(At present I am using a DataTable but in future this may change to a collection of Objects)
Using Access 2003 and VB code, I have created a form with a number of labels. The labels will display an employee's names. I have named the labels name1, name2, name3...etc. Using an ADO data set and DCount I have determined the number of names in an Access table (the number of names can vary). What I want to do is for each record in succession to pick the first name and surname from the data set , combine them into a full name (this part has been successful), and then set the full name into the label caption in succession. Example: full name 1 into name1, full name 2 into name2, full name 3 into name3... until all names appear as labels on the form.
I created a counter to and a variable to increment the label number but when I address the caption property of the variable containing the new label (e.g. name1, name2..etc.) it throws an errer at runtime. Here is the code:
I have an array of unknown (to the current method) class objects. I do know that each class has a property called "Number". I am trying to write a LINQ query where I am looking for the object with the next Number in sequence. AKA, I'm at Number 8, use a LINQ query to find the object where Number=9.
I'm developing in MVC2 using VB.NET and MySQL and ran into a problem trying to convert a simple SQL query to LINQ. SQL Query:
[Code]...
Looking at that query its easy to spot whats causing the error. Simply, the most inner query only returns 2 columns, while the query right above it is trying to SELECT 3, thus the Unknown Column Error. So why is this happening? What is wrong with my LINQ query?
I'm trying to check if a LINQ Entity exists in its table, but at design time I dont know what type that entity is. So I figure I'll just get the table, and try the Contains method on it. But I cant get the table in such a way that I can query it at design time.I've tried the GetTable method on the datacontext, but I dont know how to cast it to the appropriate type when using GetTable(Of). GetTable(Type) works, I just use Entity.GetType(), but then I don't know how to query the ITable thats returned.To try and cast the ITable to something useable, I created an interface(IWhatever) that could implement properties that are native to all of my entities I would encounter. [code]
Is there a way to create a method with unknown number of parameters? And if it this the case: How is it possible to get access to them within this method? Do they have to be from the same type?
I built a simple vb.net winforms project that pings IP addresses and logs the results. It works fine on most machines I've tried it on. I log the status result of the ping System.Net.NetworkInformation.IPStatus) by using the IPStatus.tostring method.
Normally this returns a text result such as "Success" or "TimedOut"Yesterday, on one machine it returned "65" ...which is not one of the enum values. I have a feeling it might be a combination of values. I ran some test code:
Dim status As System.Net.NetworkInformation.IPStatus status = Net.NetworkInformation.IPStatus.Success MsgBox(status.ToString) Which returns "Success"And this: status = Net.NetworkInformation.IPStatus.BadDestination Or Net.NetworkInformation.IPStatus.BadHeader MsgBox(status.ToString)
Which returns "11050" I suspect the "65" I saw was the result of some combination of enum values. Is there any way I can change the code in my second example to show the text names of both values? That is... any way I can see ALL values in this variable?
I'm saving path's to text files in a text file so the user himself would be able to add new data. My problem is that I need to make a loop that reads from these different text files and stores the data (but I don't know how many there might be.) This was my try to it:[code]
I'm gonna add x number of items to a listbox in form #2 form form #1. When I click the button it opens Form #2 and then I tried this code (which makes the form freeze): Dim qwe As Integer = 1 Do Until qwe = regKey.GetValue("Count") + 1 PrMaker.ListView1.Items.Add(regKey.GetValue(qwe)) qwe = qwe + 1 Loop The regKey.GetValue("Count") is a registry key which contains a integer (unknown). What is wrong, or is there another, better way, of doing this?
I have an application where I would like to allow the user to change one field in a datatable but leave the other ones uneditable. I am using a datagridview to do this but I can only make the whole table editable or not. The result should be an order form where you have a determined product and should only be able to change the number of items.
is there a way i can get my datatable to have multiple constraints that are attached to a unique id? an example of what i'm talking about is if i have a unique machine but it's on many lines, can i show that somehow in a datatable? the reason i'm asking is that i have code that sorts the data by line number and shows the relevant machines in a combo box based on the line selection out of another combo box. i'm having to input the data into the datatable (as a starting point for the data base) and it's very tedious. i'm entering machines that have the same name in multiple rows because the line number is different. i can't figure out how i can add multliple values into my line number column so that it will sort properly when queried.an example of what i'm asking with regard to the datatable is as follows:
Machine LineNumber slicer Line 1, Line 2, Line 4 conveyor belt Line 1, Line 6
So that when called to fill the combo box, the correct one is called.The code i'm using to sort right now is as follows:
Private Sub linecbo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles linecbo.SelectedIndexChanged Dim cline As String
This is bug in VB 2008 Dim dsExpre as New DataTable
Table has Two Fields (ExprID, Expression) 112,xyz 113,abc Private Sub.......... Dim rsExpr as DataRow=Nothing Dim i as Integer [Code] ..... The Problem is, When i becomes 2, Table Data also becomes "q", Why....?
I have some code from this site CodeProjectLink to convert a datatable to a recordset. This code had been working fine until I changed to .NET 4 (was previously 2), now when I call the following line:
Dim result As New ADODB.Recordset() result.CursorLocation = ADODB.CursorLocationEnum.adUseClient Dim resultFields As ADODB.Fields = result.Fields Dim inColumns As System.Data.DataColumnCollection = inTable.Columns For Each inColumn As DataColumn In inColumns [Code] .....
I tried changing my line to just: resultFields.Append(inColumn.ColumnName, TranslateType(inColumn.DataType)) But this gave the same error. The TranslateType function is correctly returning ADODB.DataTypeEnum.adVarChar so this seems valid as well
I'm trying to concatenate two fields in LINQ so that I can then filter with a keyword. I found a question posted here that I thought was my answer, but I'm getting 0 records back for some reason. This is supposed to return a JSON result for an autocomplete textbox (it works when I don't concatenate fields).
Basically what I want to do is, say after I've filled my datatable(whichever fill method i used[dataadapter.fill; or datatable.load(reader)]), now the datatable has the fields i've selected albeit, "Select * from" or "Select field1, field3 from" - either way the table now has my fields. Later incode when i'm ready to access them, say "dt.rows(x)(" OR "dt.rows(x)!", right here I would like intelisense to show me the available fields for that table. I already have my clsDataTable that inherits DataTable.
How can I use dynamic fields in LINQ in the PART OF THE where query? I mean that I want to write where x = *dynamic fields* I want to do the select query in all of the tables that are in the dataset, not on one datatable.
I want to select column 'F1' from an excel spreadsheet and dump the data into my datatable 'oleDT'. How do I map the column F1 to the column i've added called 'colTest' ? When i call Fill, the dataTable has 2 columns, which are 'colTest' full of nulls and a created column called F1.[code]...
The LINQ VB code below is to read the first record data for database table ProductTable that has 3 colounms (or 3 fields):
TableCol1, TableCol2, TableCol3. The reading data is stored at variable MyArrayFirstRow. '-------start LINQ VB code in Visual Studio Web Developer 2008-------' Dim MyArrayFirstRow
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."
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.
How can I get a Variable's value set to the number of Data Fields in my DataBase that is NOT Nul.
I have in a table 10 fields or columns Named: Ing1, Ing2, Ing3, Ing4, Ing5, Ing6, Ing7, Ing8, Ing9 and Ing10. This fields will all most never all be fild, will be fild from 1 upwords. I need to know how many of them is NOT Nul.
I am getting the above error in my code. I've searched the net (on this site and others) for a solution to this problem and it seems that its either something to do with a field name being a reserved name ie. Date, Time etc.... or its missing (') or (") in the SQL command. ive tried both these solutions to no avail.
Dim objDataAdapter As New OleDbDataAdapter Dim objDataSet As New DataSet Dim objDataReader As OleDbDataReader Dim i As Integer Dim SQLstr As String [Code] .....
here is my code. dont seem to know whats the problem. i have 12 data fields in access excluding the ID field.
Dim strCon As String = "Provider=Microsoft.jet.oledb.4.0;data source=C:UsersdexterDocumentsdesktopcsci14databaseMuseum-final.mdb" Dim dSet As New DataSet
i am making a simple testing application within visual studio 2010, thought im gonna be direct. in ms.acces i made a database with a few tables, this one is about the table : leden. the error indicates that i simply do not have enough values to insert into the table and i think it has to do with the ID(autincrement in acces)