Solved

Populate ComboBox from Database Query (Oracle Database)

Posted on 2011-09-29
7
1,750 Views
Last Modified: 2013-12-14
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
Comment
Question by:Gary Jones
  • 4
  • 3
7 Comments
 
LVL 4

Expert Comment

by:rar3z
Comment Utility
            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
 
LVL 4

Expert Comment

by:rar3z
Comment Utility
You can get the connection string information from the following site.

Connection Strings for Oracle
0
 
LVL 1

Author Comment

by:Gary Jones
Comment Utility
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
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 1

Author Comment

by:Gary Jones
Comment Utility
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
 
LVL 1

Accepted Solution

by:
Gary Jones earned 0 total points
Comment Utility
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
 
LVL 1

Author Closing Comment

by:Gary Jones
Comment Utility
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
 
LVL 4

Expert Comment

by:rar3z
Comment Utility
Try adding the following after your for loop.

cmbProject.DataBind();

Open in new window


Hope this helps.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

For most people, the WrapPanel seems like a magic when they switch from WinForms to WPF. Most of us will think that the code that is used to write a control like that would be difficult. However, most of the work is done by the WPF engine, and the W…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…

771 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

12 Experts available now in Live!

Get 1:1 Help Now