|
I am trying to bind an array of structures to a Datagrid according to the
MSKB article #315784 - HOW TO: Bind a DataGrid Control to an Array of Objects or Structures by Using Visual Basic .NET.
Both the objects and structures in the downloaded code display properly in the grid but only the objects' data are editable. If an array of structures is bound, the cell contents can be changed, but they change back to the initially loaded values if I click a different cell.
I can change the array data programmatically and refresh the grid OK, but how can I edit the cells and change data in the bound array of structures?
Gary S
|
|
|
|
|
Hello,
In vb.net i need to know wich row is selected in my listview. I'm pretty sure that in previous VB versions a property was available ( selectedindex maybe ).
Am I blind or is it not available anymore ??
Thanks
|
|
|
|
|
since you didn't post any code, I'll guess your looking for this:
ListViewItem.Selected Property
and the
ListView.SelectedItems Property
But you may want to read-up on the New ListView here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsListViewClassTopic.asp
Hope that help's
progload
|
|
|
|
|
Thanks a lot for the link. It is exactly what i needed
Good ol' MSDN
|
|
|
|
|
I developed an application smart client to twirl in the net, when this application this twirling inside of my local net performace is excellent, however when I place it stops twirling using one link dedicated of 512kb the application is very slow in the tip, have forms that they delay 40 seconds to be opened that they do not search given in the servers, or either use link not to search given to load in the screen.
You can help me?
|
|
|
|
|
Is there a way to validate a XML file with a .dtd file wich is not defined in the <doctype> tag ? I cant do it with XMLValidatingReader.
I am a newbie
|
|
|
|
|
Im trying to send command trought TCP-IP to a remote application.
I use something like this :
<br />
Dim myIpHostInfo As IPHostEntry = Dns.Resolve(strIP)<br />
Dim myIPAdress As IPAddress = myIpHostInfo.AddressList(0)<br />
Dim myRemoteEP As New IPEndPoint(myIPAdress, strPort)<br />
Dim bytesSent As Integer <br />
Dim mySender As New Sockets.Socket(Sockets.AddressFamily.InterNetwork, Sockets.SocketType.Stream, Sockets.ProtocolType.Tcp) <br />
mySender.Connect(myRemoteEP)<br />
Dim Key As System.Windows.Forms.Keys<br />
Dim CommandTest As Byte() = System.Text.Encoding.ASCII.GetBytes("/createdoc(NewDocument, 210 mm, 297 mm, 12 mm, 12 mm, 12 mm,12 mm, 0, 1, 5 pt, 0)" & Key.Enter & Key.LineFeed)<br />
I know im connected but every command i send does not do anything and return anything.
Can it be possible that the fact i send in bytes and not String is the cause ?
Maybe Winsock could handle that ?
I am a newbie
|
|
|
|
|
I have 4 textbox fields, one button, and one datagrid in my app. when I input value to textbox, then click submit button, then datagrid will show the data record, it works at the first time when I click the button, but when I input another value to the textbox, then click the submit button again, the datagrid add data records to the datagrid, is there any way I can clear up the first time's record in datagrid, and shows the newest search record? In my app now, it adds up every single time I click submit button. If you can give me some ideas to fix it, I very appricate it.
Lisa
|
|
|
|
|
It would appear that your adding records to the dataset that holds your results and not clearing the dataset out between calls. What does the code look like that does your search, and the code that binds your results to the datagrid? Without see the code, it's very difficult to tell you whats wrong.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
here is my code
Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
clientName = txtClientName.Text
contactName = txtContactName.Text
address = txtAdr.Text
city = txtCity.Text
Results()
end sub
Public Function Results()
Try
objConn.Open()
objDA.SelectCommand = New OleDbCommand
objDA.SelectCommand.Connection = objConn
objDA.SelectCommand.CommandText = "SELECT * from Companies"
objDA.SelectCommand.CommandType = CommandType.Text
objDA.SelectCommand.ExecuteNonQuery()
objDA.Fill(objDS, "Companies")
objConn.Close()
Catch ex As Exception
MessageBox.Show("fail connection in Client Search")
End Try
grdResults.DataSource = objDS
grdResults.DataMember = "Companies"
numRows = objDS.Tables("Companies").Rows.Count
End Function
Lisa
|
|
|
|
|
OK. The problem is your not clearing out the recordset you keep using, objDS. Your using "global" variables to hold these objects and that's just not a good idea. Also, there is nothing in your Results sub that is filtering the recrods to get the one that was specified. Results is also a Function that doesn't return anything. It's a Sub that just fills the recordset with the exact same data every time it's called. Your not "searching" for anything. I suspect that your Companies table in your database has a single record in it?
I'm not rewriting your code because it would just take way too long and I have a job to do, but here's your code "patched" to return just a single copy of the data...
Public Function Results()
Try
objConn.Open()
objDA.SelectCommand = New OleDbCommand
objDA.SelectCommand.Connection = objConn
objDA.SelectCommand.CommandText = "SELECT * from Companies"
objDA.SelectCommand.CommandType = CommandType.Text
objDA.SelectCommand.ExecuteNonQuery()
objDS.Clear()
objDA.Fill(objDS, "Companies")
objConn.Close()
Catch ex As Exception
MessageBox.Show("fail connection in Client Search")
End Try
grdResults.DataSource = objDS
grdResults.DataMember = "Companies"
numRows = objDS.Tables("Companies").Rows.Count
End Function
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thank you for your time. I know you have your job to do and busy..could you just tell me what do I need to add into my code? like you can tell me I need to clear the dataset, to filter data..because I know which step I need to code into my code, then I can find some more info to read and study them for because I'm starting vb last month, so it seems my coding so bad to you..I need to know what do I need to use in my code, then I can search and study those those..but you remind me the filter things,I can search the filter and learn more about it and try to more complicate my coding..
Lisa
|
|
|
|
|
I can't tell you what to add to your code because it would take a major rewrite of your database code to get it to work properly. If I tell you to add this little thing or change that little thing, chances are it'll break something somewhere else because your using "global" variables and sharing these object all over the place. I'll post a little bit of code from a project I worked on to show you what should be going on.
There's three functions in here. One that opens the database for the other two functions, and two functions that return requested data. One is a parameter out of the database and the other is a dataset that is bound to a datagrid somewhere else.
Private Shared Function GetSystemParameter(ByVal sParamName As String, ByRef objReturnValue As Object) As ParameterStatus
Dim oConnection As SqlConnection
Dim oCommand As SqlCommand
Dim retValue As Integer
Try
oConnection = GetDatabaseConnection()
oCommand = New SqlCommand
oCommand.Connection = oConnection
oCommand.CommandText = "SQLGetSystemParameter"
oCommand.CommandType = CommandType.StoredProcedure
Dim sqlParam As New SqlParameter("@ParmName", SqlDbType.NVarChar, 25)
sqlParam.Value = sParamName
oCommand.Parameters.Add(sqlParam)
Dim sqlpParamValue As New SqlParameter("@ParmValue", SqlDbType.NVarChar, 255)
sqlpParamValue.Direction = ParameterDirection.Output
oCommand.Parameters.Add(sqlpParamValue)
sqlParam = New SqlParameter("RETURN_VALUE", SqlDbType.Int)
sqlParam.Direction = ParameterDirection.ReturnValue
oCommand.Parameters.Add(sqlParam)
oConnection.Open()
oCommand.ExecuteNonQuery()
oConnection.Close()
Dim iReturnCheck As Integer = Integer.Parse(oCommand.Parameters("RETURN_VALUE").Value)
If iReturnCheck = 1 Then
retValue = ParameterStatus.ParameterInvalid
Else
retValue = ParameterStatus.ParameterOK
objReturnValue = sqlpParamValue.Value
End If
Catch ex As Exception
LogErrorEvent("SQLServices", "GetSystemParameter", ex.Message, ex.StackTrace)
retValue = ParameterStatus.ParameterInvalid
Throw ex
Finally
If Not oCommand Is Nothing Then
oCommand.Dispose()
End If
If Not oConnection Is Nothing Then
If Not oConnection.State = ConnectionState.Closed Then
oConnection.Close()
End If
oConnection.Dispose()
End If
End Try
Return retValue
End Function
Public Shared Function GetSystemParameters() As DataSet
Dim oConnection As SqlConnection
Dim oCommandSelect As SqlCommand
Dim oDataAdapter As SqlDataAdapter
Dim oDataSet As DataSet
Dim retValue As Integer
Try
oConnection = GetDatabaseConnection()
oCommandSelect = New SqlCommand("SELECT * FROM System")
oCommandSelect.Connection = oConnection
oDataAdapter = New SqlDataAdapter(oCommandSelect)
oDataSet = New DataSet("SystemParameters")
oDataAdapter.Fill(oDataSet)
oDataSet.Tables(0).TableName = "System"
Catch ex As Exception
LogErrorEvent("SQLServices", "GetSystemParameters", ex.Message, ex.StackTrace)
Throw ex
Finally
If Not oCommandSelect Is Nothing Then
oCommandSelect.Dispose()
End If
If Not oConnection Is Nothing Then
If Not oConnection.State = ConnectionState.Closed Then
oConnection.Close()
End If
oConnection.Dispose()
End If
End Try
Return oDataSet
End Function
Public Shared Function GetDatabaseConnection() As SqlConnection
Dim sConnectionString As String
Dim oConnection As SqlConnection
Try
sConnectionString = ConfigurationSettings.AppSettings("DataConnection")
oConnection = New SqlConnection(sConnectionString)
Catch ex As Exception
LogErrorEvent("SQLServices", "GetDatabaseConnection", ex.Message, ex.StackTrace)
Throw ex
End Try
Return oConnection
End Function
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks Dave..that's so helpful for me to fellow your code alone and understand what's a good coding and what do I need to do it step by step.
I have few questions want to ask you.
1. where do you put the dataconnection? what is the best way to do it? I use the public module to store the dataconnection string, will it hard to change when your app. stored into other data?
2. is it more easy to use stored procedure than the command text? can you give me the example above the 3 parameters' stored procedure? I have not experience of the stored procedures, but I think it's the time to learn about it and try using in my code.
3. can the public shared function be called in any other classes?
Thank you very much!
Lisa
|
|
|
|
|
Lisana wrote:
1. where do you put the dataconnection? what is the best way to do it? I use the public module to store the dataconnection string, will it hard to change when your app. stored into other data?
I take it you're talking about the connection string? It's sitting in the application's config file. Since this is just an XML text file, it's very easy to change.
Lisana wrote:
2. is it more easy to use stored procedure than the command text? can you give me the example above the 3 parameters' stored procedure? I have not experience of the stored procedures, but I think it's the time to learn about it and try using in my code.
Much easier! You also get the benefit of better performance because the stored procedures are compiled and used by the SQL server. You'll find that, when done properly, the database can "run" itself entirely through stored procedures. Your application is just there to call the procedures with the right data and in the right order to make the database "run".
This is an example of a stored procedure from the same database. There are actually two return values. A hidden one, essentially called @ReturnValue, and the @ParmValue. The @ReturnValue will tell the caller if @ParmValue is an actual value being returned.
CREATE PROCEDURE dbo.GetSystemParameter
@ParmName NVARCHAR(25),
@ParmValue NVARCHAR(255) OUTPUT
AS
BEGIN
SELECT @ParmValue = ParmValue FROM [System] WHERE ParmName = @ParmName
IF @@ROWCOUNT = 0
RETURN 1
ELSE
RETURN 0
END
Lisana wrote:
3. can the public shared function be called in any other classes?
That's why I used public shared methods. Public Shared means that any other class can call the method without instantiating an object. All you have to do is Import the namespace that this class of database methods sits in. In my case, its "Imports MNFPool.SQLServices.SQL". All of the methods I posted before sits in a class called "SQL".
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
how can I change this to stored procedures? I'm stuck in the middle of it.
THose are my vb code:
client = txtClientNo.Text
clientName = txtClientName.Text
contactName = txtContactName.Text
address = txtAdr.Text
city = txtCity.Text
If client = "" Then
clientSearch = " "
Else
clientSearch = " AND client_number LIKE '%" & client & "%'"
End If
If clientName = "" Then
clientNameSearch = " "
Else
clientNameSearch = " AND client_name LIKE '%" & clientName & "%'"
End If
If contactName = "" Then
contactNameSearch = " "
Else
contactNameSearch = " AND contact LIKE '%" & contactName & "%'"
End If
If address = "" Then
addressSearch = " "
Else
addressSearch = " AND address_1 LIKE '%" & address & "%' OR address_2 LIKE '%" & address & "%'"
End If
If city = "" Then
citySearch = " "
Else
citySearch = " AND city LIKE '%" & city & "%'"
End If
If client = "" And clientName = "" And contactName = "" And address = "" And city = "" Then
emptySearch = " AND province='XX'"
Else
emptySearch = " "
End If
Dim DA As New OleDbDataAdapter
Dim DS As New DataSet
Try
objConn.Open()
DA.SelectCommand = New OleDbCommand
DA.SelectCommand.Connection = objConn
DA.SelectCommand.CommandText = _
"SELECT client_number, client_name, contact, phone_number, address_1, entity_id FROM Companies WHERE ( status = 1 " & emptySearch _
& clientSearch & clientNameSearch & contactNameSearch & addressSearch & citySearch & " ) ORDER BY client_name ASC"
DA.SelectCommand.CommandType = CommandType.Text
DA.SelectCommand.ExecuteNonQuery()
client_s = ""
DS.Clear()
DA.Fill(DS, "Companies")
objConn.Close()
Catch ex As Exception
MessageBox.Show("fail connection in Client Search")
End Try
I'm trying to change them to stored procedure, but I don't know how to set " & emptySearch & clientSearch & clientNameSearch & contactNameSearch & addressSearch & citySearch " into my stored procedures.
CREATE PROC PDQ
@client_number varchar(100),
@client_name varchar(100),
@contact_name varchar(100),
@address varchar(100),
@phone_number varchar(20),
@empty varchar(100)
AS
BEGIN
SELECT client_number, client_name, contact, phone_number, address_1, entity_id
FROM Companies
WHERE status = 1 **stuck in here**
END
How can I write this stored procedure to fit what I need in the above vb code?
Lisa
|
|
|
|
|
For this one, you'll write the bulk of this in SQL and forget putting the SQL string together in your code. Your code will have to pass ALL of your fields as parameters to the stored procedure, even if they are empty. The stored procedure will do the work of figuring out what fields need to be searched on. Basically, in SQL:
CREATE PROCEDURE dbo.SearchForWhatever
@client_number varchar(100),
@client_name varchar(100),
@contact_name varchar(100),
@address varchar(100),
@phone_number varchar(20)
AS
BEGIN
DECLARE @SearchClientNumber varchar(100)
IF LEN(@client_number) > 0
SET @SearchClientNumber = '%' + @client_number + '%'
ELSE
SET @SearchClientNumber = '*'
DECLARE @SearchClientName varchar(100)
IF LEN(@client_name) > 0
SET @SearchClientName = '%' + @client_name + '%'
ELSE
SET @SearchClientName = '*'
DECLARE @SearchContactName varchar(100)
IF LEN(@contact_name) > 0
SET @SearchContactName = '%' + @contact_name + '%'
ELSE
SET @SearchContactName = '*'
DECLARE @SearchAddress varchar(100)
IF LEN(@address) > 0
SET @SearchAddress = '%' + @address + '%'
ELSE
SET @SearchAddress = '*'
DECLARE @SearchPhoneNumber varchar(20)
IF LEN(@phone_number) > 0
SET @SearchPhoneNumber = '%' + @phone_number + '%'
ELSE
SET @SearchPhoneNumber = '*'
SELECT client_number, client_name, contact, phone_number, address_1
FROM Companies
WHERE status = 1
AND client_number LIKE @SearchClientNumber
AND client_name LIKE @SearchClientName
AND contact LIKE @SearchContactName
AND phone_number LIKE @SearchPhoneNumber
AND address_1 LIKE @SearchAddress
END
This may not be the prettiest way to do it, but it'll work.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Please Help in Datagrid.
In Datagrid how to select a row on single click and edit row on double click.
Thanx in advance
with regards
Irsh
|
|
|
|
|
here is the code for select a row on single click:
Private Sub dataGrid1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dataGrid1.MouseUp
Dim pt = New Point(e.X, e.Y)
Dim hti As DataGrid.HitTestInfo = dataGrid1.HitTest(pt)
If hti.Type = DataGrid.HitTestType.Cell Then
dataGrid1.CurrentCell = New DataGridCell(hti.Row, hti.Column)
dataGrid1.Select(hti.Row)
End If
End Sub
Lisa
|
|
|
|
|
Am working in asp.net in the webforms, this code is not working, could you please give me some other alternative for ths.
Thanx
|
|
|
|
|
Your question would be better answered in the ASP.NET Forum.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Sir,
I need a help.
I have develop a Explorer band using VB 6.0 for IE.
In that I placed a Webbrowser Control. The delete key is not functioning in textbox When a webpage is loaded in the webbrowser control.
I don't get understand the problem.
If anybody knows. help me.
Thanks in advance
Suresh VS
|
|
|
|
|
how can i disable or hide the taskbar in windows 2000/XP? i really need it so i appreciate it if you can help me out! thanks!
|
|
|
|
|
You can't disable or hide the TaskBar. But, if you take a look at this[^] little tidbit on MSDN, you'll find out how you can have your application, in full screen mode only, cover the taskbar so the user can't get to it using the mouse. Then it's just a matter of disabling the Minimize and Maximize functions of your form, and writing a little keyboard hook to eat the Window's key.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have a form A, inside the form have some usercontrols and and different kind
of controls in there.
When form A is close, dispose or set to nothing, does all the controls inside that form
automatic get dispose, and clean it up by itself without setting it to dull or
dispose it or we have to manually clean it up?
Expert, Please help
|
|
|
|
|