Sorting DataTable String Column, But With Null/empty At The Bottom?
Mar 5, 2009
I need to sort a DataTable or DataGridView by a column that is a string value, but with null/empty values at the BOTTOM when sorting ASCENDING.The DataTable is NOT populated by a SQL statement, so no order by.If I doDataGridView1.Sort(New RowComparer(System.ComponentModel.ListSortDirection.Ascending))then it throws an exception, saying that the DataGridView is DataBound, which is correct, but doesn't help me, and I want to keep it databound.
I need to sort a DataTable or DataGridView by a column that is a string value, but with null/empty values at the BOTTOM when sorting ASCENDING. The DataTable is NOT populated by a SQL statement, so no order by. If I do
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?
Dim sortingIndex As Integer = orderby Dim DataTableNew As DataTable = New DataTable DataTableNew = dt.Clone Dim query = (From c In dt.AsEnumerable Order By c.Field(Of String)(sortingIndex) Ascending) query.CopyToDataTable(DataTableNew, LoadOption.OverwriteChanges)
My problem is that with this method I always need (Of String) for it to work, so the date columns are also managed as Strings witch is the problem. Is there a way to use the correct type so the sorting is based on the type of the column?
Dim myRow As BurnerService.OEBSContractBatchesRow Dim myDate As Nullable(Of DateTime) myRow = Me.BurnerService.OEBSContractBatches.AddOEBSContractBatchesRow( _
I'm using FileHelper to generate object's property. Here is an example of one property:
<FieldOptional(), _ FieldTrim(TrimMode.Both)> _ <FieldNullValue(GetType(String), " ")> _ Public StoreNo As String
As you can see the StoreNo will either have a value or " ", one of the business policy is to check if the StoreNo is empty or nothing if the object's StoreNo is empty or null then the record will not create.
I though about creating an HasValue Function in the class to check the StoreNo and other properties in the object but I feel like it is a hack.
Public Function HasValue() As Boolean Dim _HasValue As Boolean = True If StringHelper.IsNullOrBlank(Me.StoreNo) Then
[Code]....
I don't think this approach is an ideal solution. what if the StoreNo is remove or change to something else. What's the best approach to check object's property?
I have a couple of textfields in a Windows form. One of these textfields is allowed to be NULL. When I enter a value for every field, it is all inserted, no problem. When I leave the field (txtGewicht) blank, I can't seem to be able to insert NULL in Access Database.
If Double.TryParse(txtGewicht.Text, 0) Then klant.Gewicht = Double.Parse(txtGewicht.Text) Else
[Code]....
This is what I get:
"Cannot set column 'Gewicht' to NULL, please use DBNull instead"
So I changed 'Nothing' to DBNull.value, but it then tells me that System.DBNull cannot be converted to type Double.
Now I can't use cmbReplcmnt.Text because what I actually need is the value of that SelectedItem
So problem is, if the user leaves the combobox as blank, it throws a null exception.I decided to use the IIf function then:classEquipmentItem.ReplacementTo = IIf(IsNothing(cmbReplcmnt.SelectedItem.ToString), classEquipmentItem.ReplacementTo = "", cmbReplcmnt.SelectedItem.ToString)
Unfortunately I still get the error I tried using a Try-Catch for it and it worked, but I don't want to rely on the Try-Catch, so I was wondering is there a another way to work this through?
I am using VB.NET and ADO 4.0. Given that I have a string containing a reference to a table.column, can I use the content of the string in a command? [code] I got to the point where I can use the string contents as "reference", it seemed to obvious but [strName] does the trick, partially.When I debug bookableday.room1 remains 0 whilst it should show 6. There might be a conversion issue because the debugger shows me "6" i.s.o. 6 . this is the actual code: [code]
I'm having my program sort an excel sheet by a few columns. However, it is only sorting by the first column not the rest that I specify.ere is my sort code below:
I have two tables, dt & dtResults.dt contains 3 columns named: vchInstrumentAnalyteID, bintAnalyteCodeID, & vchAnalyteCode dtResults contains several columns including the columns in dt
I want to get vchInstrumentAnalyteID from the first row in dt and test if it exists in the vchInstrumentAnalyteID column in dtResults. If it exists, I want to use that value from dt to filter rows in dtResults and fill all the filtered rows with data from that row in dt. Then loop to the next row in dt.
I have this code, which is close to what I need, but I can't get it working.
' put analyte data in results table For Each drA As DataRow In dt.Rows If
Is there a simple way to assign a populated datatable's columns to another empty datatable? That is, I want to copy a datatable's structure only but not its data.
I'm trying to copy one row from DataTable to another, I looked almost everywhere and I can't find a reason why this is happening, I'm using ImportRow and still the New DataTable is empty. Here's one of the answers similar I found and It's still not working!:
Dim newTable As New DataTable Dim dsFrom As New DataTable For Each DBShoes In list Dim iShoeID As Integer
Using VB.Net If the grid cell value is empty, i am getting error as "Conversion from string "" to type 'Double' is not valid"Code (gridview_CellLeave)
Dim z1, z2, z3, z4 As Int32 If grvList.CurrentRow.Cells(1).Value <> "" Then z1 = grvList.CurrentRow.Cells(1).Value End If If grvList.CurrentRow.Cells(2).Value <> "" Then
I have a datatable which has 5 column. It is possible to copy only its 2 column in and save it into new datatable.I used this code but it copies all the 5 column
Code: Dim qry As DataTable = (From obj In temptable Where obj.Item("Column1") = 0 _ Select obj).CopyToDataTable i used this one but it is not supported
Code: Dim qry As DataTable = (From obj In temptable Where obj.Item("Column1") = 0 _ Select obj.item("Column1"), obj.item("Column2")).CopyToDataTable
When I put a break point to the last if clause in the sub ("If (backOrder < 0) Then", see below) it runs until the break point, if I put the break point further below, I get the following error:
Cannot insert the value NULL into column 'OrderID', table 'WHM.dbo.OrderDetails'; column does not allow nulls. INSERT fails. The statement has been terminated.
I've discovered first hand that it only happens when prodqty is bigger then qtyOnStock, thus executing the if clause.
The code:
Private Sub NCOSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NCOSubmit.Click Dim sqlText As String = ""
i have a date control on form (vb.net) and by default its value is current date. i want to make its value to null or empty so that no date is shown and user choose from the drop down date calendar.
I'm deserializing some XML from an old application into an object in my current application. The old XML often has empty elements (<SomeElement />) which are currently deserialized as empty strings (""). I agree that this is the most appropriate behaviour, but it is a minor irritant; I'd rather they were deserialized as Nothing or ideally ignored - the effect would be the same. Is there a means of ignoring these elements? Or can I have them deserialized as Nothing?
The code below works fine as long as there are values within an XML node (For example the <CPU>Intel</CPU> node below) but it throws an Exception error when the node value is blank/null whatever as in the example node <Monitor> </Monitor>.t's ok if the node value is blank, I just want to check for it and not throw an exception error.This question uses the following XML snippet below: Note: The tag <Monitor></Monitor> has no value in it.
I am finding this weird issue. When I do this > activities.Where(Function(a) (Not a.IsDeleted And a.ParentId = 100) It returns an in-memory query & when I try opening it up, it throws a object not set exception. This only happens when there were no items which satisfied the condition. Shouldn't it be returning an empty set? When there are items satisfying the condition, then it returns a list & works all good.
I constantly find myself having to do code similar to the following.[code]Is there anyway to check for both on a single line? When i'm checking a condition for a great number of answers, I sometimes end up with conditionals 6-sets deep. If i check for null first, an error still pops up, even though VB shouldn't check since the first condition failed. i.e.[code]
How can I change the following code to write to the database null instead of empty strings?
Public Sub SetChangeRequest(ByVal referenceLeaseID As Integer, _ ByVal referenceCustomerID As Integer, _ Optional ByVal custUnitNum As Object = Nothing, _