Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Updating Data via DataGrid comboBox`

Posted on 2004-10-19
6
Medium Priority
?
228 Views
Last Modified: 2010-04-15
Hello Experts,

I have two MS Access tables that are related "Status" : "NESingles" (1:M).  PK: Status.Status_ID,  FK: NESingles.Status_FK

In my datagrid, I managed to show all the data inside the "NESingles" table and I have a comboBox column that shows the corresponding 'Status'.

When the user changes the 'Status' value of any "NESingles" record via the combobox inside my datagrid, how do I go about saving the data?  With what particular datagrid event do I get this started?  etc, etc, etc.

Hope I was able to explain this adequatly.  If not, please feel free to ask for further details.

Thank you very much



0
Comment
Question by:brdrok
  • 4
  • 2
6 Comments
 
LVL 7

Accepted Solution

by:
rohanbairat3 earned 1380 total points
ID: 12350797
Hi ,

Typically what you should do is post back the form to itself onchange event .... u can use jaavscript to do that or just submit the form on change.....Also keep track of the changed value with hidden field. I am assuming that you are going to save the values after each change in status.

Once you send the form back you can retrive the value. The change can be tracked with the help of java script. You can assign values and text to a combo box ..the value can be the record id ...or any unique identifier.

so once the firm is submitted you can keep a routine for onpostback and save the changed values ...

You can deal with this in many ways ... you can also have an intermediate controller program to do this for you. Please let me know if this is clear or if i have confused u more ??

-rohan
0
 
LVL 7

Author Comment

by:brdrok
ID: 12350948
Hey Rohan,

thanks for getting back to me but I thought that I posted this underneath the C# area.  Wouldn't be the first time I posted a question in the wrong section.  Sounds to me like ASP.Net stuff.  Do you know how to do this w/o using ASP.Net?
0
 
LVL 7

Author Comment

by:brdrok
ID: 12351014
Also,  for my comboBox I have set the DisplayMember and the ValueMember as well.  Is there an event that traps when a user moves away from a certain column.  For example, a user changes a combobox value from "Option1" to "Option3" and then click away from that column.  I would like to capture that event and my ValueMember as well.

Thank you in advance
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 7

Expert Comment

by:rohanbairat3
ID: 12358653
Hi,

What language are you using for development. For combobox ..u can use OnChange Event ...You can write this in java script. The onChange event gets fired when u make a different selection in combobox so if option 1 is listed and u click option 3 then this event gets fired but if u drop down the box and make the same selection its not a change so u if u keep selecting same value the event wont fire which is perfectly right.

If you give more specifics .. i will paste some code if you want.

-rohan
0
 
LVL 7

Author Comment

by:brdrok
ID: 12358773
Hey Rohan,

I am attempting to use C# anyways :)  Still at the beginning stages of learning.  Below is the method that does the heavy lifting.  

private void MakeDataSetAndBindGrid()
{
      string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\toll\\My Documents\\Current Projects\\LibraryStatus\\LibraryStatus.mdb;Persist Security Info = False";

      string sqlString = "SELECT * FROM NESingles";

      dataAdapter = null;
      myDataSet = null;

      try
      {
            connection = new OleDbConnection(connString);

            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            myDataSet = new DataSet();
            dataAdapter.Fill(myDataSet, "NESingles");

            sqlString = "SELECT Status_ID, Status FROM Statuses";

            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            dataAdapter.Fill(myDataSet, "Statuses");

            //connection.Close();
      }
      catch (Exception ex)
      {
            MessageBox.Show("Problem with DB access-\n\n connection: "
            + connString + "\r\n\r\n                      query: " + sqlString
            + "\r\n\r\n\r\n" + ex.ToString());

            this.Close();
            return;
      }

      DataGridTableStyle tableStyle = new DataGridTableStyle();
      tableStyle.MappingName = "NESingles";

      DataTable dt = myDataSet.Tables["NESingles"];

      for(int i = 0; i < dt.Columns.Count; ++i)
      {
            if(i != 8)
            {
                  DataGridTextBoxColumn textCol = new DataGridTextBoxColumn();
                  textCol.MappingName = dt.Columns[i].ColumnName;
                  textCol.HeaderText = dt.Columns[i].ColumnName;
                  tableStyle.GridColumnStyles.Add(textCol);
            }
            else
            {
                  DataGridComboBoxColumn comboTextCol = new DataGridComboBoxColumn();
                  comboTextCol.MappingName = "Status_FK";

                  comboTextCol.HeaderText = "myStatus";
                  comboTextCol.Width = 120;
                  comboTextCol.ColumnComboBox.DataSource = myDataSet.Tables["Statuses"].DefaultView;
                  comboTextCol.ColumnComboBox.DisplayMember = "Status";
                  comboTextCol.ColumnComboBox.ValueMember = "Status_ID";

                  tableStyle.PreferredRowHeight = comboTextCol.ColumnComboBox.Height + 2;

                  tableStyle.GridColumnStyles.Add(comboTextCol);
            }
      }

      dgStatus.TableStyles.Clear();
      dgStatus.TableStyles.Add(tableStyle);
      dgStatus.DataSource = dt;
}
0
 
LVL 7

Author Comment

by:brdrok
ID: 12359560
Hey Rohan, in the event that you are still working on this question....i want to let you know that i am deleting this question.  i appreciate your comments.  turns out that i set the datasource to a datatable and i should have set it to a dataset.

thanks

0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Hello there! As a developer I have modified and refactored the unit tests which was written by fellow developers in the past. On the course, I have gone through various misconceptions and technical challenges when it comes to implementation. I would…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question