[英]combobox with for each loop
Hi I am a student do anybody know after populating the combobox with the database values. 嗨,我是一个学生,用数据库值填充组合框后,有人知道吗。 How to display the same value in the text box.
如何在文本框中显示相同的值。 When I select a name in the combobox the same name should be displayed in the text box I am using seleted item.
当我在组合框中选择一个名称时,应在我正在使用分隔项目的文本框中显示相同的名称。 Here is the code.
这是代码。
I am getting the error the following error using the foreach loop 我使用foreach循环收到以下错误
foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator' foreach语句无法对类型为“对象”的变量进行操作,因为“对象”不包含“ GetEnumerator”的公共定义
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace DBExample
{
public partial class Form1 : Form
{
private OleDbConnection dbConn; // Connectionn object
private OleDbCommand dbCmd; // Command object
private OleDbDataReader dbReader;// Data Reader object
private Member aMember;
private string sConnection;
// private TextBox tb1;
// private TextBox tb2;
private string sql;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
// Construct an object of the OleDbConnection
// class to store the connection string
// representing the type of data provider
// (database) and the source (actual db)
sConnection =
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=c:member.mdb";
dbConn = new OleDbConnection(sConnection);
dbConn.Open();
// Construct an object of the OleDbCommand
// class to hold the SQL query. Tie the
// OleDbCommand object to the OleDbConnection
// object
sql = "Select * From memberTable Order " +
"By LastName , FirstName ";
dbCmd = new OleDbCommand();
dbCmd.CommandText = sql;
dbCmd.Connection = dbConn;
// Create a dbReader object
dbReader = dbCmd.ExecuteReader();
while (dbReader.Read())
{
aMember = new Member
(dbReader["FirstName"].ToString(),
dbReader["LastName"].ToString(),
dbReader["StudentId"].ToString(),
dbReader["PhoneNumber"].ToString());
// tb1.Text = dbReader["FirstName"].ToString();
// tb2.Text = dbReader["LastName"].ToString();
// tb1.Text = aMember.X().ToString();
//tb2.Text = aMember.Y(aMember.ID).ToString();
this.comboBox1.Items.Add(aMember.FirstName.ToString());
// this.listBox1.Items.Add(aMember.ToString());
// MessageBox.Show(aMember.ToString());
// Console.WriteLine(aMember.ToString());
}
dbReader.Close();
dbConn.Close();
}
catch (System.Exception exc)
{
MessageBox.Show("show" + exc);
}
}
private void DbGUI_Load(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
this.textBox1.Text = comboBox1.SelectedItem.ToString();
textBox2.Text = string.Empty;
foreach (var item in comboBox1.SelectedItem)
textBox2.Text += item.ToString();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
You just need to change the foreach loop to: 您只需要将foreach循环更改为:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
this.textBox1.Text = comboBox1.SelectedItem.ToString();
textBox2.Text = string.Empty;
foreach (var item in comboBox1.Items)
textBox2.Text += item.ToString();
}
the above foreach(var item in comboBox1.Items) item.ToString() just returns the system type 上面的foreach(comboBox1.Items中的var项)item.ToString()仅返回系统类型
the below example worked for me to find the one I needed 下面的示例为我找到了我需要的那个
foreach(DataRowView item in cmbUser.Items)
{
if(item.Row[0].ToString() == "something")\\gets value displayed
{
//do something
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.