为什么是“系统.数据.显示数据行视图 “而不是列名

本文关键字:数据 而不是列名 系统 显示 为什么 视图 | 更新日期: 2023-09-27 17:56:59

我的表单应用程序中有两个ListBoxes和一个ComboBox。我想将所有 3 个(两个ListBoxes和一个ComboBox)中的当前选定项目添加到新TextBox。但是,我得到的列名是:

系统。数据。数据行视图

这是我使用的代码:

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    string cmdstr = @"select * from information_schema.columns where table_name = '" + comboBox1.SelectedItem + "'";
    string conStr = @"Data Source=INPDDBA027'NGEP;Initial Catalog=Dev_Server;Integrated Security=True";
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter(cmdstr, conStr);
    sda.Fill(dt);
    //listBox2.DataSource = dt;
    //listBox2.DisplayMember = "Column_Name";
    textBox2.CharacterCasing = CharacterCasing.Upper;
    textBox2.Text = (listBox1.SelectedItem.ToString() + " " + listBox2.SelectedItem.ToString() + " FROM " + comboBox1.SelectedItem.ToString());
}

请帮忙。

为什么是“系统.数据.显示数据行视图 “而不是列名

使用 GetItemText 方法:

listBox1.GetItemText(listBox1.SelectedItem);

combobox使用

this.ComboBox.GetItemText(this.ComboBox.SelectedItem);

您应该同时设置两者:

listBox1.DataValueField="fieldValue" and listBox1.DataTextField="textValue"

listBox2.DataValueField="fieldValue" and listBox2.DataTextField="textValue"

虽然你可以操纵

listBox1.SelectedItem.ToString()

使用类似cast

((DataRowView)listBox1.SelectedItem)["Enter column name here"].ToString();

若要从添加到列表框的SYSTEM.DATA.DATAROWVIEW中检索数据,更好的选择可能是首先查看如何填充列表框,以便它只包含所需的字符串,而不是SYSTEM.DATA.DATAROWVIEW的集合。

您可以将所选项的值获取为

string variable =  listBox1.SelectedValue;

和所选项目的文本为

string variable = listBox1.SelectedItem.Text;

希望对!!有所帮助