Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2091
  • Last Modified:

Populate ComboBox from Database Query (Oracle Database)

I need to populate a combobox from an Oracle database query. I have no idea how to begin and I have been "Google-ing" for the past day and a half. The problem that I have (I see it as a problem anyway) is that I need to populate information from an Oracle database versus a SQL Server database. I have already created a DataSet (DataSet1) to the Oracle table that I need to pull the values from. Beyond adding the dataset, I have no idea how to move forward.

I am using Visual Studio 2010 Pro which has the VSTO libraries already loaded. I have no code to show since I don't even know how to start. I am using the C# language and this is my third day so any code samples should be wrtten in such a way that a novice like me can understand.

Any and all help is appreciated.
0
Gary Jones
Asked:
Gary Jones
  • 4
  • 3
1 Solution
 
rar3zCommented:
            DataTable UR_MyDataTableNew = new DataTable();
            SqlConnection UR_MySqlConnectionNew = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ToString());
            SqlCommand UR_MySqlCommandNew = new SqlCommand();
            UR_MySqlCommandNew.Connection = UR_MySqlConnectionNew;
            try
            {
                UR_MySqlConnectionNew.Open();
                UR_MySqlCommandNew.CommandType = CommandType.Text;
                UR_MySqlCommandNew.CommandText = "SELECT Description as NAME, CODE FROM STATE ORDER BY CODE";
                SqlDataAdapter UR_MySqlDataAdapterNew = new SqlDataAdapter(UR_MySqlCommandNew);
                UR_MySqlDataAdapterNew.Fill(UR_MyDataTableNew);
                ddl_state.DataSource = UR_MyDataTableNew;
                ddl_state.DataTextField = UR_MyDataTableNew.Columns[0].ToString();
                ddl_state.DataValueField = UR_MyDataTableNew.Columns[1].ToString();
                ddl_state.DataBind();
            }
            catch
            {
                Lbl_Error_Message.Text = "There was an error while connecting to the server.";
            }
            finally
            {
                UR_MySqlConnectionNew.Close();
                SqlConnection.ClearPool(UR_MySqlConnectionNew);
                UR_MySqlConnectionNew.Dispose();
            }

Open in new window


I am thinking of use the above code with changing the sqlconnection to oracle type.
0
 
rar3zCommented:
You can get the connection string information from the following site.

Connection Strings for Oracle
0
 
Gary JonesDirector of Information TechnologyAuthor Commented:
rar3z, thank you for the quick reply. My next question is where do I place the block of code. I am working on an Office Workbook Application project. I have placed the code in the ThisWorkbook.cs area but I get a lot of "red squigly lines" under most of the syntax. I suspect that I am missing some assemblies. I moved the code block inside of the ThisWorkbook_Startup class and now many of the "squigly red lines" are gone but I do still have a few others.

Please keep in mind that I am very much a novice when it comes to c# (I'm a VB 6, VBA programmer usually).
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
Gary JonesDirector of Information TechnologyAuthor Commented:
Another thing is that I am pulling data from an Oracle database, not a SQL Server database. The code appears to be hooked into the SQL Server assemblies versus the Oracle assemblies.

Thanks again.
0
 
Gary JonesDirector of Information TechnologyAuthor Commented:
I figured out how to pull data from an Oracle database and place the results in a datatable:

Add the Oracle.DataAccess.Client assembly

code: using Oracle.DataAccess.Client;

Then in the ThisWorkbook_Startup class add:

OracleConnection cs = new OracleConnection("User Id=MyUserID;Password=MyPassword;Data Source=OracleSID");
OracleDataAdapter da = new OracleDataAdapter("SELECT COL1, COL2, FROM SCHEMA.TABLENAME", cs);

DataTable dt = new DataTable();

da.Fill(dt);

I just need to figure out how to get the ComboBox named cmbProject to populate. I tried using:

(the code is in the code snippet)

But I get an error saying that cmbProject does not exist in the current context. The cmbProject combo box is in a custom Ribbon named Ribbon1.

Any ideas what I am missing?
for (int i = 0; i < dt.Rows.Count; i++)
            {
                cmbProject.Items.Add(dt.Rows[i]["My_Column_Name"]);
            }

Open in new window

0
 
Gary JonesDirector of Information TechnologyAuthor Commented:
The database portion of the question was figured out by the author. I still need to figure out how to populate the combobox of a ribbon. I will add another question in a more appropriate zone.
0
 
rar3zCommented:
Try adding the following after your for loop.

cmbProject.DataBind();

Open in new window


Hope this helps.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now