By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,404 Members | 2,512 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,404 IT Pros & Developers. It's quick & easy.

problem binding comboBox to dataset

P: n/a
When I try to databind my comboBox (specifically field "emplcode") to a
filled dataset , the contents of the comboBox displays a bunch of
"System.Data.DataRowView". I assume the amount of times
"System.Data.DataR..." is displayed inside the combobox is the amount of
records in the dataset. On the other hand, if my query is "select emplcode
from payemployee", the databind will work fine (but I don't want to limit
the dataset to one field). Any help is appreciated. This is the code:

DataSet DS_Employees = new DataSet();

SqlConnection SQLConn = new SqlConnection("Data Source=localhost; Integrated
Security=SSPI;" +

"Initial Catalog=payroll");

string strThisQuery = "select * from payemployee"; //If the query were
"select emplcode from payemployee" it works

SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);

DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter?

SQLConn.Close();

comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];

comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
comboBox_emplcode.DisplayMember = "payemployee.emplcode";

Thanks again,

Omar
Nov 15 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Set your DataValueField (i.e what the value should be if the combo box
is taking part in any events) and the DataTextField (what should be
displayed)..

try setting

comboBox_emplcode.DataTextField = " " <-- field u want as the display
comboBox_emplcode.DataValueField = " " <-- field u want as value..

also make sure u comboBox_emplcode.DataBind()
Omar wrote:
When I try to databind my comboBox (specifically field "emplcode") to a
filled dataset , the contents of the comboBox displays a bunch of
"System.Data.DataRowView". I assume the amount of times
"System.Data.DataR..." is displayed inside the combobox is the amount of
records in the dataset. On the other hand, if my query is "select emplcode
from payemployee", the databind will work fine (but I don't want to limit
the dataset to one field). Any help is appreciated. This is the code:

DataSet DS_Employees = new DataSet();

SqlConnection SQLConn = new SqlConnection("Data Source=localhost; Integrated
Security=SSPI;" +

"Initial Catalog=payroll");

string strThisQuery = "select * from payemployee"; //If the query were
"select emplcode from payemployee" it works

SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);

DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter?

SQLConn.Close();

comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];

comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
comboBox_emplcode.DisplayMember = "payemployee.emplcode";

Thanks again,

Omar


Nov 15 '05 #2

P: n/a

Hello Omar,

You can do something like this:
try
{
DataSet ds=new DataSet();
SqlDataAdapter adapter=new SqlDataAdapter("select * from
jobs","server=localhost;database=pubs;uid=sa;pwd=" );
adapter.Fill(ds);
comboBox1.DataSource=ds.Tables[0];
comboBox1.DisplayMember="job_desc";
comboBox1.ValueMember="job_id";
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}

I use the default database of SqlServer and use the job_desc column as the
display item of comboBox, job_id column as the value item of the comboBox.
You can get the current selected member of these 2 column value by
comboBox1.SelectedText and comboBox1.SelectedValue.

Hope this helps,
Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Omar" <none>
| From: "Omar" <none>
| Subject: problem binding comboBox to dataset
| Date: Wed, 8 Oct 2003 17:51:35 -0500
| Lines: 36
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <uX**************@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: 66-50-71-153.prtc.net 66.50.71.153
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:190027
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| When I try to databind my comboBox (specifically field "emplcode") to a
| filled dataset , the contents of the comboBox displays a bunch of
| "System.Data.DataRowView". I assume the amount of times
| "System.Data.DataR..." is displayed inside the combobox is the amount of
| records in the dataset. On the other hand, if my query is "select emplcode
| from payemployee", the databind will work fine (but I don't want to limit
| the dataset to one field). Any help is appreciated. This is the code:
|
| DataSet DS_Employees = new DataSet();
|
| SqlConnection SQLConn = new SqlConnection("Data Source=localhost;
Integrated
| Security=SSPI;" +
|
| "Initial Catalog=payroll");
|
| string strThisQuery = "select * from payemployee"; //If the query were
| "select emplcode from payemployee" it works
|
| SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);
|
| DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter?
|
| SQLConn.Close();
|
| comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];
|
| comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
| comboBox_emplcode.DisplayMember = "payemployee.emplcode";
|
|
|
| Thanks again,
|
| Omar
|
|
|

Nov 15 '05 #3

P: n/a
Thanks for the response.
In my case, the DataTextField or DataValueField members don't exist and the
DataBind method doesn't exist either.

"Kunal" <ku***@nospamsoremovethisqnal.net> wrote in message
news:uw**************@TK2MSFTNGP09.phx.gbl...
Set your DataValueField (i.e what the value should be if the combo box
is taking part in any events) and the DataTextField (what should be
displayed)..

try setting

comboBox_emplcode.DataTextField = " " <-- field u want as the display
comboBox_emplcode.DataValueField = " " <-- field u want as value..

also make sure u comboBox_emplcode.DataBind()
Omar wrote:
When I try to databind my comboBox (specifically field "emplcode") to a
filled dataset , the contents of the comboBox displays a bunch of
"System.Data.DataRowView". I assume the amount of times
"System.Data.DataR..." is displayed inside the combobox is the amount of
records in the dataset. On the other hand, if my query is "select emplcode from payemployee", the databind will work fine (but I don't want to limit the dataset to one field). Any help is appreciated. This is the code:

DataSet DS_Employees = new DataSet();

SqlConnection SQLConn = new SqlConnection("Data Source=localhost; Integrated Security=SSPI;" +

"Initial Catalog=payroll");

string strThisQuery = "select * from payemployee"; //If the query were
"select emplcode from payemployee" it works

SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);

DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter?
SQLConn.Close();

comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];

comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
comboBox_emplcode.DisplayMember = "payemployee.emplcode";

Thanks again,

Omar


Nov 15 '05 #4

P: n/a
Thanks for your post. I tried it your way with the same result. Instead of
displaying 111 emplcodes (the amount of records in the table), it displays
111 "System.Data.DataRowView". I *did* notice that it ignores the
comboBox.DisplayMember member.

I also tried it like this:
try
{
DataSet DS_Employees=new DataSet();
SqlConnection SQLConn = new SqlConnection("Data Source=localhost;
Integrated Security=SSPI;" +
"Initial Catalog=payroll");
SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);
DA_empl.Fill(DS_Employees, "payemployee");
SQLConn.Close();
DataView dv = new DataView(DS_Employees.Tables["Payemployee"]);
comboBox1.DataSource=dv;
comboBox1.DisplayMember = "FName";
// I can susbstitute the previous line with comboBox1.DisplayMember =
"thisFieldDoesntExist"; and it'll display the same 111
"System.Data.DataR..." lines
catch(Exception ex)
{
MessageBox.Show(ex.Message ); //it never displays the MessageBox since
it never encounters an error.
}

"Jeffrey Tan[MSFT]" <v-*****@online.microsoft.com> wrote in message
news:jC**************@cpmsftngxa06.phx.gbl...

Hello Omar,

You can do something like this:
try
{
DataSet ds=new DataSet();
SqlDataAdapter adapter=new SqlDataAdapter("select * from
jobs","server=localhost;database=pubs;uid=sa;pwd=" );
adapter.Fill(ds);
comboBox1.DataSource=ds.Tables[0];
comboBox1.DisplayMember="job_desc";
comboBox1.ValueMember="job_id";
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}

I use the default database of SqlServer and use the job_desc column as the
display item of comboBox, job_id column as the value item of the comboBox.
You can get the current selected member of these 2 column value by
comboBox1.SelectedText and comboBox1.SelectedValue.

Hope this helps,
Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Omar" <none>
| From: "Omar" <none>
| Subject: problem binding comboBox to dataset
| Date: Wed, 8 Oct 2003 17:51:35 -0500
| Lines: 36
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <uX**************@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: 66-50-71-153.prtc.net 66.50.71.153
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:190027 | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| When I try to databind my comboBox (specifically field "emplcode") to a
| filled dataset , the contents of the comboBox displays a bunch of
| "System.Data.DataRowView". I assume the amount of times
| "System.Data.DataR..." is displayed inside the combobox is the amount of
| records in the dataset. On the other hand, if my query is "select emplcode | from payemployee", the databind will work fine (but I don't want to limit | the dataset to one field). Any help is appreciated. This is the code:
|
| DataSet DS_Employees = new DataSet();
|
| SqlConnection SQLConn = new SqlConnection("Data Source=localhost;
Integrated
| Security=SSPI;" +
|
| "Initial Catalog=payroll");
|
| string strThisQuery = "select * from payemployee"; //If the query were
| "select emplcode from payemployee" it works
|
| SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);
|
| DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter? |
| SQLConn.Close();
|
| comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];
|
| comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
| comboBox_emplcode.DisplayMember = "payemployee.emplcode";
|
|
|
| Thanks again,
|
| Omar
|
|
|


Nov 15 '05 #5

P: n/a
I finally found the answer. Apparently, the field in
comboBox.DisplayMember is case-sensitive (at least for SQL Server 2000).
The funny thing is that the sql statement used to fill the dataset is *not*
case-sensitive.

Thanks again for the help.
"Omar" <none> wrote in message news:uX**************@tk2msftngp13.phx.gbl...
When I try to databind my comboBox (specifically field "emplcode") to a
filled dataset , the contents of the comboBox displays a bunch of
"System.Data.DataRowView". I assume the amount of times
"System.Data.DataR..." is displayed inside the combobox is the amount of
records in the dataset. On the other hand, if my query is "select emplcode
from payemployee", the databind will work fine (but I don't want to limit
the dataset to one field). Any help is appreciated. This is the code:

DataSet DS_Employees = new DataSet();

SqlConnection SQLConn = new SqlConnection("Data Source=localhost; Integrated Security=SSPI;" +

"Initial Catalog=payroll");

string strThisQuery = "select * from payemployee"; //If the query were
"select emplcode from payemployee" it works

SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);

DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd parameter?

SQLConn.Close();

comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];

comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
comboBox_emplcode.DisplayMember = "payemployee.emplcode";

Thanks again,

Omar

Nov 15 '05 #6

P: n/a

Hi Omar,

I think the SQL statement is passed to the SqlServer by the .Net
application, and it will be handled by the SqlServer, so it is not
case-sensitive.
While binding the ComboBox's DisplayMember property with certain field of
database, this field is already the column of DataSet and it is processed
in .Net, so it is case-sensitive.(I think this is determined by the design
of DisplayMember property).

I am glad you finally found the problem, I think we all must be careful of
this type of problem.

Thanks

Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Omar" <none>
| From: "Omar" <none>
| References: <uX**************@tk2msftngp13.phx.gbl>
| Subject: Re: problem binding comboBox to dataset
| Date: Thu, 9 Oct 2003 12:16:35 -0500
| Lines: 48
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#U**************@TK2MSFTNGP12.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: 66-50-71-48.prtc.net 66.50.71.48
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP12.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:190286
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| I finally found the answer. Apparently, the field in
| comboBox.DisplayMember is case-sensitive (at least for SQL Server 2000).
| The funny thing is that the sql statement used to fill the dataset is
*not*
| case-sensitive.
|
| Thanks again for the help.
|
|
| "Omar" <none> wrote in message
news:uX**************@tk2msftngp13.phx.gbl...
| > When I try to databind my comboBox (specifically field "emplcode") to a
| > filled dataset , the contents of the comboBox displays a bunch of
| > "System.Data.DataRowView". I assume the amount of times
| > "System.Data.DataR..." is displayed inside the combobox is the amount of
| > records in the dataset. On the other hand, if my query is "select
emplcode
| > from payemployee", the databind will work fine (but I don't want to
limit
| > the dataset to one field). Any help is appreciated. This is the code:
| >
| > DataSet DS_Employees = new DataSet();
| >
| > SqlConnection SQLConn = new SqlConnection("Data Source=localhost;
| Integrated
| > Security=SSPI;" +
| >
| > "Initial Catalog=payroll");
| >
| > string strThisQuery = "select * from payemployee"; //If the query were
| > "select emplcode from payemployee" it works
| >
| > SqlDataAdapter DA_empl = new SqlDataAdapter (strThisQuery, SQLConn);
| >
| > DA_empl.Fill(DS_Employees, "payemployee"); //Do I need the 2nd
parameter?
| >
| > SQLConn.Close();
| >
| > comboBox_emplcode.DataSource = DS_Employees.Tables["payemployee"];
| >
| > comboBox_emplcode.DisplayMember = "emplcode"; //I also tried
| > comboBox_emplcode.DisplayMember = "payemployee.emplcode";
| >
| >
| >
| > Thanks again,
| >
| > Omar
| >
| >
|
|
|

Nov 15 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.