Simple LINQ To XML Query?
May 3, 2011This one is my simple XML
Dim Xml = <BODY ID="1">
<HEAD1>
<Eyes type="S" l="1" f="1"></Eyes>
[code].....
This one is my simple XML
Dim Xml = <BODY ID="1">
<HEAD1>
<Eyes type="S" l="1" f="1"></Eyes>
[code].....
The code below works fine on my development PC, but when I deployed the app, it crashes.
Here is the lines of code that are relvant
Private TdsTypesList As List(Of TDS_Type)
...
TdsTypesList = (From tt In db.TDS_Types Select tt).ToList
[Code].....
I have many queries that are using linq, and none of them throw any errors. The set of data is not very large either, less that 100 rows. I dont know if I have any other queries that do not have where statements in them that work.
Running .net 3.5 without sp1 on the client machine, although I am running sp1 on my development PC. looking for a solution that doesn't require sp1 to be installed.
Edit Code breaks on the second line when remote debugging.
I looked over [URL] and tried the following, with the same error.
TdsTypesList = tl.OfType(Of TDS_Type)().ToList
I finally found a dirty workaround. Instead of pulling all of columns from that table, I was able to re-write the query to omit 1 column. This returns an object of anonymous type, and I can use that object. I still would like to know what causes this though.
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.
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
if there is that much of a performance gain in running a LINQ stored procedure versus a LINQ query?
View 1 RepliesI 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]....
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 trying to do what seems to be a simple thing but I'm having problems. The answers I find aren't working. I'm still getting casting exceptions:
Dim query = (From l In dePhl.cv_phil Where l.batch = strMmddyyyy
Select l.zipfile.Distinct)
Dim objFileList As List(Of String) = query.ToList() 'Error
[Code]....
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]....
How do I add ROW_NUMBER to a LINQ query or Entity? How can I convert this solution to VB.NET?
[Code]...
I'm having trouble porting that last line. I have been unable to locate a VB.NET example. I'm actually not looking for any paging functionality like the example provides, just good old-fashioned Row_Number(Order By X) row index.
I have loaded my database with one table under "Data Connections" in the "Server Explorer" pane.What is the standard / best-practices way to handle a simple query in a VB ASPX page?
My left <div> would be a set of form elements to filter rows, and when the button is clicked, the main <div> would show the columns I want for the rows returned.
Note: Answers in C# are okay too, I'll just translate.
I am trying to get a query to work with Visual Basic 2010 Express addition I have pasted the code below but it just errors out with to many arguments I have taken this sample from a reference book but cannot get the darn thing to work. I have looked all over the net and Microsoft for a solution but still no go if any one can help it would really be great. BEP
Private Sub FillBypeeps1ToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FillBypeeps1ToolStripButton.Click
[Code]...
I am just starting to dive into the ADO.Net routines in VB.Net, have used ADO in VB6 forever just would like to make sure I am getting started on the right foot here.
'As I test I had hard coded the connection string here which I have removed from the post, I will switch it to a var that is read from a config file later.
CN.Open()
Dim Cmd As SqlCommand = CN.CreateCommand
Cmd.CommandText = "Select * from tblusers where userid=@UserID"
[code]....
btw I realize that I have not yet added a message for when the Userid is not found. I am more concerned with the method I am using to query the db and read the results as well as closing the objects afterwards.
I was wandering is it possible to use a query within another query below is the code I am trying to use.
Public Function GetInventByComp(ByVal CompID As String) Using DC As New DataClassDataContext
'need to get company id's based off names? thats bad should be name from Id need to rethink this
Dim invent = (From C In DC.Inventors_Companies _
Where C.CompID = CompID _
Select C.InventorID).ToString
[Code]...
I was trying to us multiple values in a string like "1, 3, 5" but I can't seem to get that working either so I am trying to use just a single value now. Can anyone help me? "Yes I am new to this"
I'm using vb.net express with access 2010.Everything is working fine except for a simple query:SQL: SELECT * FROM Customers WHERE Name Like 'Ale*'Which returns all the names starting with Ale. Now in my .NET code I wrote this:cmd = New OleDbCommand("SELECT * FROM Customers WHERE Name Like " & Chr(39) & Name.Text & Chr(39), connection)Now when I start the app and in my textbox "name" I write Ale* I have the following expression:SQL: SELECT * FROM Customers WHERE Name Like 'Ale*'But when it executes from .NET (dr = cmd.ExecuteReader) it doesn't find ANYTHING.
View 11 RepliesI am trying to query a SQL db and send the results to a notepad or wordpad doc. I have the VB code wrapping the statement and it works fine but I have to put the results to a doc so the user can preview and/or print.
View 3 RepliesI have a GridView and on a row being deleted I trigger the GridView1_RowDeleting sub, but I receive an error "LINQ to Entities does not recognize the method 'System.Web.UI.WebControls.TableCell get_Item(Int32)' method, and this method cannot be translated into a store expression." Code is:
Private Sub GridView1_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
' The deletion of the individual row is automatically handled by the GridView.
Dim dbDelete As New pbu_housingEntities
' Remove individual from the bed.
[code]....
The specific line erroring out is:
remove_bed.First.occupant = ""
I've tried different approaches to query a simple xml and compare one of it's values but none of them worked well.
Consider the following XML structure:
<?xml version="1.0" encoding="iso-8859-1" ?>
- <Shops>
- <Shop>
<text>Northampton</text>
<value>NN</value>
<currentdate>050809</currentdate>
<labelcounter>1</labelcounter>
[Code] .....
I have the shop name in a drop down list which is ShopsDDL and it's set to autopostback. What I want to achieve is:
On postback, check for a xml node where node's text = shopDDL shopname
And retrieve also this node's currentdate and label counter.
Rhen, if the node currentday = today then increment labelcounter by 1
Else set labelcounter = 1 and currentday= today
My problem is the XML query, I can do all the logic as soon as I manage to retrieve data from the XML.
i'm trying to populate a simple combobox with a query to a MySql database. I Just want the combobox to show the results of the query:
SELET DISTINCT models from Cars
I am using VB 2008 with Datasets, how can I achieve this?
I'm retrieving data from an Excel sheet, using a simple SQL query using a textbox as input to my variable. It works great when I enter an integer to search for (such as 213 for example) but when I put in a mixture of numbers and letters (48A for example) I get the following error: Syntax error (missing operator) in query expression '[P&L]=48A'.
Private Sub MPLS3()
Dim BrNr As String
BrNr = TextBox1.Text
Dim stSQL As String = "SELECT [MPLS Date] FROM [Master Data$] WHERE [P&L]=" & BrNr & ";"
[code]....
how to draw a simple line chart representing sql query data results?
View 8 RepliesI have a project in Visual Studio 2008 and there is a working data connection to a MySQL database. In other words, I can query the db directly from Visual Studio and it will display the results.
I've tried a couple of approaches that I found online for writing a connection string and accessing the db, but no luck yet.
All I'm trying to do is code a button to query the db and then reset the text property of a label/textbox to display the results based upon another label/textbox value.
The pseudo-code I am imagining is something like this:
Private Sub query_submit_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles query_submit_button.Click
result_textbox.Text = SELECT field FROM table WHERE otherfield = key_textbox.Text
End Sub
I didn't see any related questions posted on SO - forgive me if I missed one that already exists and this is a dupe.
What is the correct way to accomplish this?
EDIT
Using MySQL 5.1
I've been reading a fair bit about the performance of using LINQ rather than using a for each loop and from what I understand using a LINQ query would be a little bit slower but generally worth it for convenience and expressiveness. However I am a bit confused about how much slower it is if you were to use the results of the query in a for loop.
Let's say that I have a set called 'Locations' and a set of objects called 'Items'. Each 'item' can only belong to one 'location'. I want to link items that are under the same location to each other. If I were to do this using a normal 'For Each' loop it would be something like this:
For Each it as Item in Items
If it.Location.equals(Me.Location)
Me.LinkedItems.Add(it)
End If
Next
However if i was to use LINQ it would instead be this:
For Each it as Item in Items.Where(Function(i) i.Location.equals(Me.Location))
Me.LinkedItems.Add(it)
Next
is the second (LINQ) option going to loop once through the entire 'Items' set to complete the query, then loop through the results to add them to the list, resulting in essentially two loops, or will it do the one loop like the first (For Each) option?
Is it possible to do the following? [code] Basically I have one Load_Gridview function that is called on all postbacks, and rather than creating a bunch of different cases.I want the filters to stack.My actual code has more filters set up (4 or 5 of the).It all compiles ok but when I run and try to execute with active checked, or a department selected I get the following error. [code]
View 4 RepliesI have below XML file
<?
xml version="1.0" encoding="utf-8" ?><
PageFlow>
<
attributegroup name="Search"><
attributes>
[Code]...
I am looking to sum the "Status" field.
Dim _detailRecords As New DataTable
_detailRecords.Columns.Add("y")
_detailRecords.Columns.Add("z")
[Code]....
I'm also wanting to keep this as an IEnumerable of DataRow because I will be creating a datatable from it with
Dim yyyyy As DataTable = query8.CopyToDataTable
I am Fairly new to Linq and I am trying to write a simple query to return the error messages within my xml file.
<?xml version="1.0" encoding="utf-8"?>
<Error xmlns="urn:xxxxx">
The following errors were detected:
[code].....
if I run this under c#
from p in Addresses where p.Address2 == null select p.AddressID
it generate this query
SELECT [t0].[AddressID]
FROM [dbo].[Address] AS [t0]
WHERE [t0].[Address2] IS NULL
if I run this under vb.net
from p in Addresses where p.Address2 = nothing select p.AddressID
it generate this query
SELECT [t0].[AddressID]
FROM [dbo].[Address] AS [t0]
WHERE [t0].[Address2] = ''
p.Address2 is a varchar field that accept null value
why vb.net is "wrong" ?
I'm converting the Linq query below from C# to VB.Net. Can you spot my error? The query joins 3 XML datasets. C# - This one works great.
List<Course> courses =
(from course in CourseXML.Descendants(ns + "row")
join coursecategory in CourseCategoryXML.Descendants("Table") on (string)course.Attribute("code") equals (string)coursecategory.Element("DATA")
[code]....
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)?