|
I am Trying to built the search box for my windows app that searches the data from the database like if admins types the keyword student the name of all the students should be shown. I have used the LIKE operator for it but its not working accurately.
|
|
|
|
|
onurag19 wrote: but its not working accurately.
I don't think anyone can guess why from that little information. Try and explain clearly what you are doing, what results you expect, and what results you see. If some of your code is failing then show that code (not all, just the failing portion), and be sure to check and explain the values of any variables used.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
Thanks for you Interest Sir.
|
|
|
|
|
Hello,
I'm using a Datagridview in Windows application. Its working fine in my local machine, but when i tried to execute in my server( Winodws 2008 SP2), few columns not updating with the value using the below statement.
DataGridView1.Rows(e.RowIndex).Cells("ApprovedBy").Value = "UserName"
DataGridView1.Rows(e.RowIndex).Cells("ApprovedDateTime").Value = Now()
Can anyone suggest a solution for this.
Please!!.
Thanks
|
|
|
|
|
What do you return from Now() ? Is it a DateTime ?
|
|
|
|
|
Yes Pete. Its a DateTime column.
|
|
|
|
|
Could you show us the code in Now()? I suspect that this is where your problem is lying - the server using a different date format to your local version.
Of course, you could whack some exception handling and logging into your DAL and see what the server is rejecting.
|
|
|
|
|
DataGridView1.Item("ApprovedDateTime", e.RowIndex).Value = Now()
DataGridView1.Item("ApprovedBy", e.RowIndex).Value = Username
But the same code works fine for below columns
DataGridView1.Rows(e.RowIndex).Cells("LastModifiedBy").Value = Username
DataGridView1.Rows(e.RowIndex).Cells("LastModifiedDateTime").Value = Now()
I tried to mimic the Null reference error, by replacing the first two lines with the below lines
DataGridView1.Item("ApprovedDateTime", e.RowIndex).Value = now() DataGridView1.Item("ApprovedBy", e.RowIndex).Value = username
even now also, i'm experiencing same issue and Application got crashed.
|
|
|
|
|
What are the column definitions for those fields (both the Approved... and the LastModified... fields)? If you could show us your table definitions then we could have a look.
|
|
|
|
|
Hello Pete,
Pls find the details below.
ColumnName DataType Length Nullable
--------------------------------------------------------
ApprovedFlag int 4 no
ApprovedDateTime datetime 8 yes
ApprovedBy varchar 30 yes
LastModifiedBy varchar 30 yes
LastModifiedDateTime datetime 8 yes
|
|
|
|
|
Hmmm. Sorry, I can't see what's happening. What you could do, is attach the query explorer to the SQL Server instance, and see what SQL it's receiving. That would be what I would do.
|
|
|
|
|
Could you please let me know the steps to do this?
|
|
|
|
|
You can find out how to do this here[^].
|
|
|
|
|
Hello Pete,
I tried to debug the code in the server after installing Visual studio.
I'm getting the below error in Cell_formatting event in this line
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Used"
e.CellStyle.BackColor = Color.LightGreen
e.CellStyle.SelectionBackColor = Color.LightGreen
e.CellStyle.SelectionForeColor = Color.Black
ERROR:
An unhandled exception of type 'System.StackOverflowException' occurred in System.Windows.Forms.dll
{Unable to evaluate expression.}
I have made a check below, but it is partly working and not updating "Status" column and coloring,
If e.Value Is Nothing Then
Exit Sub
End If
Is there anyway i can mimic this issue?
Please help. I can also paste my Cell_formating code if you want to look at it.
|
|
|
|
|
Wait a second. You're changing the value of some text here in this event? I'm pretty sure that will trigger the event again - this would lead to a StackOverflowException .
|
|
|
|
|
Please let me know if there are any steps to overcome it.?
I will need to set the Color for "status" column.
|
|
|
|
|
When an event is called SomethingChanged, you expect it to fire only when Something gets a value different from the current one. However in WinForms some of those events will also fire when assigning the same value as the property already had, and that is one way to get StackOverflowException. The easiest way around is by explicitly testing yourself, as in:
...
if (Something!=theValueIWant) Something=theValueIWant;
...
}
And yes, those events carry the wrong name, should have been GotAssignedTo or something such.
|
|
|
|
|
If dgEditor.Columns(e.ColumnIndex).Name = "Status" Then
If dgEditor.Rows(e.RowIndex).Cells("Status").Value = "NEW" Then
'if already marked as new, leave it alone
If IsDBNull(dgEditor.Rows(e.RowIndex).Cells("CommonLineName").Value) Then
Else
If dgEditor.Rows(e.RowIndex).Cells("CommonLineName").Value <> "" Then
e.CellStyle.SelectionForeColor = Color.DarkGreen
e.CellStyle.ForeColor = Color.DarkGreen
e.CellStyle.BackColor = Color.Orange
e.CellStyle.SelectionBackColor = Color.Orange
End If
End If
Else
If dgEditor.Rows(e.RowIndex).Cells("UsedFlag").Value = 1 Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Used"
e.CellStyle.BackColor = Color.LightGreen
e.CellStyle.SelectionBackColor = Color.LightGreen
e.CellStyle.SelectionForeColor = Color.Black
Else
If dgEditor.Rows(e.RowIndex).Cells("ExpiredFlag").Value = 1 Then
If dgEditor.Rows(e.RowIndex).Cells("ApprovedFlag").Value = 1 Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "UnUsed" 'approved expired
e.CellStyle.BackColor = Color.LightGray
e.CellStyle.SelectionBackColor = Color.LightGray
Else
If dgEditor.Rows(e.RowIndex).Cells("RejectedFlag").Value = 1 Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Expired" 'Rejected expired
e.CellStyle.BackColor = Color.LightCoral
e.CellStyle.SelectionBackColor = Color.LightCoral
Else
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Expired" 'pure expired - never approved and never rejected
e.CellStyle.BackColor = Color.Gray
e.CellStyle.SelectionBackColor = Color.Gray
End If
End If
Else
If dgEditor.Rows(e.RowIndex).Cells("RejectedFlag").Value = 1 Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Rejected"
e.CellStyle.BackColor = Color.Red
e.CellStyle.SelectionBackColor = Color.Red
Else
If dgEditor.Rows(e.RowIndex).Cells("ApprovedFlag").Value = 1 Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Approved"
e.CellStyle.BackColor = Color.Green
e.CellStyle.SelectionBackColor = Color.Green
Else
If dgEditor.Rows(e.RowIndex).IsNewRow = True Then
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "NEW"
e.CellStyle.SelectionForeColor = Color.DarkGreen
e.CellStyle.ForeColor = Color.DarkGreen
e.CellStyle.BackColor = Color.HotPink
e.CellStyle.SelectionBackColor = Color.HotPink
Else
If dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Edited" Then
e.CellStyle.SelectionForeColor = Color.DarkGreen
e.CellStyle.ForeColor = Color.DarkGreen
e.CellStyle.BackColor = Color.HotPink
e.CellStyle.SelectionBackColor = Color.HotPink
Else
dgEditor.Rows(e.RowIndex).Cells("Status").Value = "Pending"
e.CellStyle.SelectionForeColor = Color.Black
e.CellStyle.BackColor = Color.Yellow
e.CellStyle.SelectionBackColor = Color.Yellow
End If
End If
End If
End If
End If
End If
End If
'Application.DoEvents()
End If
Above lines are in my Cell formatting event. I have commented out Application.DoEvents as it was causing some issue.
Could you please elaborate how i can proceed with
if (Something!=theValueIWant) Something=theValueIWant;
.That would be much helpful.
|
|
|
|
|
1.
Thank you for a bunch of code, unformatted code at that, where it is all about nested IFs and no visible indentation. There is no way to read and understand that as it stands. You should edit your message and apply PRE tags to the code.
2.
You should NOT be calling Application.DoEvents(). Not there, not anywhere. It is a very dangerous method, misunderstood by most everyone. If you think you need it, something is wrong with your code and adding it is bound to make things worse as it disturbs the natural flow of events. So remove it everywhere! And remove it completely, don't just turn it into a comment, as if there would still be some value left in it.
3.
If you are assigning new cell values in there, that will cause a new barrage of events being fired, which you probably don't want. You certainly don't want an avalanche of events (as a StackOverflow would result).
One way to handle it could be this:
Dim currentStatus as String = ... ' save the content of status cell
Dim newStatus as String = currentStatus
...
' lots of conditional code, which does not change the status cell;
' if a new status is required, store it in newStatus.
...
If newStatus <> currentStatus
' now store the new status in its cell (this will cause more events, however there
' will be only one round of them as you now test for an actual change)
Endif
|
|
|
|
|
Thanks Pete and Luc.
I'm done with the changes as you suggested.
|
|
|
|
|
Hi
modified 12-Apr-12 0:31am.
|
|
|
|
|
While that's a terrible shame, is this really the right forum? I would suggest that the GIT would be the appropriate place for this, as that's where you are most likely to find a number of people from Chennai.
|
|
|
|
|
Respected Sir/ Ma'am,
I wanted to ask that how to transfer a value of one textbox from one windows form to another??
Also plz provide me with your e-mail id, so that i can contact you easily and can send you attachments wherever necessary.....
Thank you.....
|
|
|
|
|
|