Using LINQ To Query XML And Return Empty String If No Data Is Present?
Mar 8, 2011
What I'm trying to do is to write a generic rss reader that I plug in any URL into without worry if the feed has all the common properties. For instance in my example below I'm looking for pubDate, however if no pubDate exists in the xml I'd like to return the current Date. I cannot seem to get the syntax right though.
Dim xmldoc As New XDocument
xmldoc = XDocument.Load(url)
Dim feeds = From feed In xmldoc.Descendants("item") Select New With { _
I'm trying to do a LINQ Query against a typed datatable that will return me duplicated data.With out going into too much detail, here's the basic setup:
strCode1 - string type intCode1 - int32 type intAdjustor - int32
There are more fields but these are the ones that are important.I'm going to do my best to describe this, as it's kind of confusing.In theory intCode1 is a key for strCode1 (hence the names). So each time intCode1 is duplicated, the same strCode1 should appear. Example:
[code]...
Ultimately I'd like to get a List(Of T) - where T is my typed data row. In SQL, I would simply use a sub query, to get a distinct list of strCode1 and intCode1, then do a count, grouped by strCode1 where I get more than one row.I'm not sure how to translate that into LINQ, AND get the original types data rows returned in a list.
How do I get Linq to ignore any parameters that are empty? So Lastname, Firstname, etc? If I have data in all parameters it works fine...
refinedresult = From x In theresult _ Where x.<thelastname>.Value.TestPhoneElement(LastName) And _ x.<thefirstname>.Value.TestPhoneElement(FirstName) And _ x.<id>.Value.TestPhoneElement(Id) And _
'check for empty return Dim count As Integer = (From s In myEntity.employee Where employeeID = myEmployeeIDVariable).Count 'If there is a record, then process
Dim l as IList(Of Foo) = (From dataRow As DataRow In table.Select() Where CStr(dataRow("Column1")) = "A" Select New Foo(CStr(dataRow("Column1")), _ CStr(dataRow("Column2")))).ToList()
What's happening is that if i set a break-point to the constructor of Foo and step, the constructor is hit and the parameters are loaded with the arguments. However, l has empty Foo objects (the members in every object are Nothing). What could be happening here?
I have a method that takes in an id, a start date, and and end date as parameters. It will return rows of data each corresponding to the day of the week that fall between the date range. The rows are all doubles. After returning it into a DataTable, I need to be able to use LINQ in VB.NET to return the maximum value. How can I achieve this? Here is the initial setup?
With that said, shall the Private Property Attributes() As String() not return the values of DirectoryAttribute placed over the interfaces properties as well, since I specify True in the inheritance parameter of the Type.GetCustomAttributes method?
Public Shared Function GetAllNotesByUser(ByVal UserID As Guid) As Account (??) Using db As New MyEntity Dim query= (From A In db.Account _
[Code].....
I would then like to pass this to another function to calculate the totals for all the accounts in the collection. Is it best practice to return an Ienumerable, a generic list, I'm just not sure what works best with LINQ and the entity framework.
I have the following piece of code: trying to use this in 2.0 framework. getting error for not having a return statement before exit function.[code]...
I have a stored procedure in DBML and I try to pass the result to "sqlQryArray" as an array(1 dimensional array). But the bottom code causes error like below message. What else should be done?
Error 1 Value of type '1-dimensional array of aaaDatabase.stp_GetSomethingResult' cannot be converted to '1-dimensional array of String' because 'aaaDatabase.stp_GetSomethingResult' is not derived from 'String'.
The return result from stored procedure is a just list of first names of students(only one column)
Dim sqlQry = aaaLINQ.stp_GetSomething(bbb,ccc,ddd) Dim sqlQryArray As String() = sqlQry.ToArray()
I have a SelectedIndexChanged function, as shown below;
Code: Private Sub CmbPayMethod_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbPayMethod.SelectedIndexChanged
Call Oracleview()[code].....
What I want to do is that, if the text in textbox TxtOracleNo is the same after IndexChange, i.e., a user changes from BACS to Cheque and vice versa and the Text in TxtOracleNo has not changed meaning it doesn't exit, then a message box is prompted as
Code: MsgBox ("Enter new Oracle number")
Also, it will be nice if TxtOracleNo textbox will be empty if oracle_no is not present in TblOracleNos. Presently, if it is not available it retains the previous value.
Given a simple DTO (AccountExpiry) with properties of 'AccountNo' and 'ExpiryDate' and a List of same created thus: New AccountExpiry(123, New Date(2012, 4, 1)) New AccountExpiry(123, New Date(2012, 4, 2)) New AccountExpiry(123, New Date(2012, 4, 3)) New AccountExpiry(124, New Date(2012, 4, 2)) New AccountExpiry(124, New Date(2012, 4, 3)) New AccountExpiry(124, New Date(2012, 4, 4))
How do I use LINQ to retrieve the most recent entry per account. I have a feeling this will involve GroupBy and FirstOrDefault. It seems like... From Item In Source Group By Item.AccountNo Into Group Should return all of the data grouped appropriately, but It is unclear how I might apply .FirstOrDefault to each group.
I'm using LINQ to SQL to query some data.Here's my Employees table colummns:
-FirstName (or givename i.e. John) -LastName (has middle name and family name seperated by space i.e. Mac Tenny
Some people have middle name and some don't. Here's some sample data.
-FirstName LastName John Mac Tenny (with middle name "Mac") Mike Mika (no middle name)
[code]....
I want to query for people who have their middle or last name started with search criteria. Here's how I search for employees with middle name started with "joe" :
query = From emp In db.Employees _ Where emp.LastName.StartsWith("joe") _ Select emp
How do I query for employees with family name(last part of the LastName) started with "joe"?
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 created a small WPF app in VB9 to catalog our sizable DVD collection. This exercise has been more about learn programming than the need to have a movie database app, but I digress.The SQL database I created has a field for "Genre" that does not have an entry for all the movies in our collection. As such, when I run the method that filters the movie listing by "Genre" the compiler throws the "StrongTypingException was unhandled" error stating "The value for column 'Genre' in table 'Movies' is DBNull.".
I now understand where the DBNull problem comes from and have been searching for several hours to find a VB solution that converts the DBNull fields to strings on the fly during the LINQ query. I've found many solutions people have tried but, since I'm quite new to all this, none of them have worked for me. Pasted below is the method that throws the exception.
Is there a way to convert a string into a linq query? Searching for those words brings up tons of stuff unrelated to what I'm trying to do..For instance, this works, of course...
Dim lstMyQuery = (From item in htMyTable.values where item(0) = "Apple" Select item)
But somehow I want to do this:
Dim strQuery = "From item in htMyTable.values where item(0) = " & CHR(34) & "Apples" & CHR(34) & " Select item" Dim lstMyQuery = (Somehow run/convert strQuery as a query)
The reason is strQuery will be different each time depending on what the user has selected earlier in the program.R if lstMyQuery is already a collection, is there a way to add to it?
Dim lstMyQuery = (From item in htMyTable.values where item(0) = "Apples" Select item)
(this obviously doesn't work, but it's basically what I want to do...)
lstMyQuery.Add(From item in htMyTable.values where item(0) = "Oranges" Select item)
I am using a path comparison to find any children tags which works well when there is only 1 tag selected. This is my code for when multiples tags are selected but it is not working. Can you point me in the right direction?
Single Tag Selection (working) Dim tagpath = uxTags.SelectedItem.Text lnqCases = From i In lnqCases Where i.HelpDeskTagItems.Any(Function(x)
So, I run a select statement in SQL and then it has something like " where clientName = 'John Doe' " I can generate a datagrid or dataset off the SQL statement, but it will only be good fro one client...... I would like to be able to populate a dataset/grid using the select satement and then having something like a combo box of names the USER can choose. Then the user selects the name and the datagrid is populated with that clients info or w/e........
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.
This must've have been asked before but I couldn't locate it. In a mixed code project (VB and C#) we were debugging some old Visual Basic code where a statement as follows could be found:
If Request.Params("xxx") <> "" Then 'do something
I considered this a bug as Request.Params could be null, in which case the statement would've become false which wasn't the idea. So I thought. I just found out, -- probably for the tenth time and I will keep forgetting -- that the following two statements are not equal, while Nothing in VB should be equal to null in C# (thought I):
if(String.Empty == null) // always false If String.Empty = Nothing Then ' always true
Should I dismiss this as a typical Microsoft backward compatibility effort, or should I consider this a huge error in the VB.NET compiler? Does anybody know the Microsoftean opinion on this oddity?
I would like to add a way to see if an entry is already in a connected database in the following code. If it is then don't add the entry and pop up a dialog saying something to the effect of "already been scanned" and if it is not, proceed as usual.[code]
I am trying to create a LINQ query statement that retrieve intersecting data from 3 datatables (dt, dt1, dt2). My first attempt to do so with the following LINQ query statement was successful: [code] However in my design, I would need the LINQ query statement to be dynamically generated, because I want a user to be able to retrieve intersecting data entries from VARIABLE number of datatables. In this case, the first option is not as good as the "INTERSECT" query operator, with which I can just easily connect each SQL query statement with a "INTERSECT" operator. The problem is that my second attempt using the "intersect" operator fails, and after many trials and errors I still can't get it to work. [code]
I have these objects:[code]Using LINQ I need to take a List(Of MakeInfo) and a List(Of ModelInfo) and aggregate the StockInfo from ModelInfo into the List(Of MakeInfo).So for each MakeInfo I will have a total count of all stock where MakeInfo.Name = ModelInfo.Make, and also a minimum price.I think it's going to be something like this, but I'm having trouble accessing the nested object and not sure if it's going to be possible with a single query.[code]
I am connecting to an Access database and using a parameter query with the LIKE operator to return all rows that match query. The string to search for is taken from a Textbox
sql =
"Select * FROM Allview WHERE Info Like" & "*" & CStr(TextBox1.Text) & "*" The query does not return any data in vb, but when run from access with same string, there is data returned.The connection to the database is done correctly, as I am able to return data with various other queries.
Partial code : Dim con As New OleDb.OleDbConnection[code]....