Solved

Updating Data via DataGrid comboBox`

Posted on 2004-10-19
6
217 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 460 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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

In order to hide the "ugly" records selectors (triangles) in the rowheaders, here are some suggestions. Microsoft doesn't have a direct method/property to do it. You can only hide the rowheader column. First solution, the easy way The first sol…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

762 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now