|
From your description, if I understand it, you're looking at two different situations.
The first is updating the Genre of a selected Song or multiple Songs. All you need to do is retrieve the Genre table's PK and Name columns and bind a ComboBox to that table. When the user selects something, the Combo's SelectedItem will fire, where you'll update the FK Genre column in the Songs table.
The second is if a ComboBox selection is made, all the Songs from the selected Genre should be returned.
This is two different operations, so I'd probably use two different ComboBox's to do this. One for searching and one for updating.
|
|
|
|
|
I have a datagridview on the same form. If I select a genre from the combobox it is meant to update the datgridview and the datagrid view then saves to the database. For some reason the value that it displays is "system.Data.datagridview" instead of the selected genre. I currently have set the datamember property to the dataset itself and the displaymember property to "genrename" the actual primary key and only field within the genre table(genre names need to be unique).Is this how to bind it or do i need to bind it somewhere else. Please help??? Mr Kreskowiak or anybody
Mr Oizo
|
|
|
|
|
Mr Oizo wrote: For some reason the value that it displays is "system.Data.datagridview" instead of the selected genre
And the code you're using that gets the value from the Combo would be ...??? Basically, what's causing that string to show up is that, somehow, your code is calling the ToString method on a DataGridView, instead of what you intended.
I get the feeling you're using all the designer generated stuff and not writing much, or any code, to do what you want?? I simply don't see that working.
Mr Oizo wrote: datamember property to the dataset itself and the displaymember property to "genrename"
I hope you really set the DataSource property to a DataTable, not a DataSet. A DataSet is a collection of DataTable objects and any DataRelations between those tables.
|
|
|
|
|
i use:
For i = 0 To dgSongProperties.Rows.Count - 1
If dgSongProperties.Rows(i).Selected = True Then
index = i
Call ShowCurrentSong(index)
End If
Next
Public sub showCurrentSong(index as integer)
' Other code for the various fields
' this code is to set the displayed values for a particular datgrid row in the various textboxes and combo boxes on the form (cmbGenre is the combo box)
If (dgSongProperties.Rows(index).Cells("Genre").Value) Is DBNull.Value Then
cmbGenre.SelectedText = ""
Else
cmbGenre.SelectedValue = CStr(dgSongProperties.Rows(index).Cells("Genre").Value.ToString)
End If
End sub
" i then have a sub called update datgird which works for allt he fields except genre at the moment(it displays system.data.dataviewrow instead of the selcted genre)
the code for the genre update for the datagrid is:
dgSongProperties.Rows(index).Cells("Genre").Value = cmbGenre.SelectedItem
(I have also tried cmbGenre.selectedvalue and also called the toString method.....None work)
The datasource for the combobox is dsLibrary.Genre
and for display member : dsLibrary.Genre.GenreName
What am I doing wrong here???????
I thought these tools were made to make life easy. Vb2003 seems easy compared to this. Please help
Mr Oizo
|
|
|
|
|
Mr Oizo wrote: dgSongProperties.Rows(index).Cells("Genre").Value = cmbGenre.SelectedItem
Take a look at the cmbGenre.SelectedItem part. What you think SelectedItem returns?? You're trying to use SelectedItem and SelectedValue interchangably. I can assure you they have very different purposes. Change SelectedItem to SelectedValue .
|
|
|
|
|
I changed it from selectedItem to selectedValue and it still doesn't work. Still displays "system.data.dataviewrow"
in this code i get an error message saying "Cannot set the SelectedValue in a ListControl with an empty ValueMember."
If (dgSongProperties.Rows(index).Cells("Genre").Value) Is DBNull.Value Or (dgSongProperties.Rows(index).Cells("Genre").Value) Is Nothing Then
cmbGenre.SelectedValue = ""
Else
"The error happens for the code below. "
cmbGenre.SelectedValue = CStr(dgSongProperties.Rows(index).Cells("Genre").Value)
End If
I have tried puttin genres in the song table in MS ACCESS so there is a value in dgSongproperties.Rows(index).cells("Genre").value but that still gives the error message.I want the value in the datagridview selected row genre to be the selected one in the genre combo box???
Mr Oizo
|
|
|
|
|
OK, this is really messed up.
Mr Oizo wrote: dgSongProperties.Rows(index).Cells("Genre").Value
You're getting the value out of the datagrid by an index?? Where's the index coming from?
Your posting single lines of code, but nothing around it, or what events these lines are in, so it's really difficult to get a hnadle on what your doing. We can go round and round with little bits of your code all month and still not get it fixed because it would take a code review to see what you did where and why. That simply isn't going to happen in a forum environment. (Don't even think of posting the entire project somewhere. I don have my own job to do and I have a life.)
|
|
|
|
|
Hi. The index was from a for loop that returns the index of the selected row in the datagridview. All I need is for the selected rows genre column value to be the value that is dislayed in the combobox. I am aware that you must be a busy man. Very sorry for bugging you but I'm just stuck with such a small thing
Mr Oizo
|
|
|
|
|
|
Well im using a loop so i can select that row index for updating(wasn't sure if there was another way, still a dumb student )
the loop is as follows:
For i = 0 To dgSongProperties.Rows.Count - 1
If dgSongProperties.Rows(i).Selected = True Then
index = i
Call ShowCurrentSong(index)
End If
Public sub ShowCurrentCong(index as integer)
'other code for the various fields (which works fine)
If (dgSongProperties.Rows(index).Cells("Genre").Value) Is DBNull.Value Or (dgSongProperties.Rows(index).Cells("Genre").Value) Is Nothing Then
cmbGenre.SelectedValue = ""
Else
'this is the problem code
cmbGenre.SelectedValue = CStr(dgSongProperties.Rows(index).Cells("Genre").Value)
End If
End sub
If you want me to stop asking you questions i will. I understand
Mr Oizo
|
|
|
|
|
We are developing a windows application that has several projects under one solution.
The problem we have run into is that we have connectionstrings in app.config files for each project.
We would like to have just one config file that all of the projects in the solution use.
Is there a way to do this or are there other ways that people normally handle this.
|
|
|
|
|
Hi,
Dim cfgMap As New ExeConfigurationFileMap
cfgMap.ExeConfigFilename = "MyConfigFile.exe.config"
cfg = ConfigurationManager.OpenMappedExeConfiguration(cfgMap, ConfigurationUserLevel.None)
For i As Integer = 0 To cfg.ConnectionStrings.ConnectionStrings.Count - 1
MsgBox(cfg.ConnectionStrings.ConnectionStrings(i).ConnectionString)
Next
Note: The type of extra applications in your solution is dll or exe?
Hope this helps
|
|
|
|
|
Pardon my ingorance but what should cfg be declared as ?
Thanks in advance...
|
|
|
|
|
You can find that out by looking at the return type of the ConfigurationManager.OpenMappedExeConfiguration method, which is Configuration out of the System.Configuration namespace.
|
|
|
|
|
Hi,
By default, when adding a folder to a C# project, it will affect the namespace of new classes contained there.
EG: Add a folder called dummy. then a class below, the IDE automatically inserts "namespace classlibrary1.dummy" into the class.
Is there anyway to turn this on in VB.Net?
|
|
|
|
|
No, there isn't. The VB.NET IDE does not support automatically add Namespace statements at any time.
|
|
|
|
|
I have the following vb.net code :-
Dim bLogonResult As Boolean = Logon()<br />
If bLogonResult = True Then<br />
MessageBox.Show(bLogonResult)<br />
Else<br />
PDM.Common.ClientData.RestartApplication = False<br />
Me.Close()<br />
End If
Looks fairly straight-forwards. Right?
So why is it that when bLogonResult does equal True that it displays the message box then jumps to the Me.Close in the Else section?
Somewhat perplexing, I sure you would agree.
Any help appriciated
Thanks
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
I'd be tempted to try:
If bLogonResult Then .....
|
|
|
|
|
I tried that. I also tried If Logon() Then and IF Logon() = True Then
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
Is it DEFINATELY going into the 'Else'? You haven't got another Me.Close further down?
|
|
|
|
|
ABSOLUTELY DEFINATELY. I have stepped thru the code in debug mode several time to make sure.
Steve Jowett
-------------------------
Sometimes a man who deserves to be looked down upon because he is a fool, is only despised only because he is an 'I.T. Consultant'
|
|
|
|
|
Bizarre!
How about something like:
Dim bLogonResult As Boolean = Logon()
If bLogonResult Then
MessageBox.Show(bLogonResult)
ElseIf Not bLogonResult Then
PDM.Common.ClientData.RestartApplication = False
Me.Close()
End If
|
|
|
|
|
Hi, I am trying to run a very simple application that keeps giving me an error that says invalidOperationException was unhandled, an error occured creating the form...I need help,thanx
Faruzzy.net!
|
|
|
|
|
Hi,
look at the entire exception text including the stack traceback, use the line numbers it
mentions (assuming a debug build), investigate the Form's constructor code.
Are you using extra threads, doing some illegal cross-thread Control access?
If you can't find it, publish all that information as is.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Hi,
I have a datagridview and on a column I have combobox.
When I choose a element from combobox I want to find the index of this element.
thanks.
|
|
|
|