C# 从组合框中的列所在的表中选择2列

C# 从组合框中的列所在的表中选择2列,c#,sql,C#,Sql,如何从表1的2个对话框中选择2列,并将这2列中的数据放入按钮1单击事件的listview11中 我尝试了这个,但没有成功。没有向listview1添加任何内容 private void button1_Click(object sender, EventArgs e) { if (cn.State == ConnectionState.Closed) cn.Open(); cm.Connection = cn; if (comboBox3.

如何从表1的2个对话框中选择2列,并将这2列中的数据放入按钮1单击事件的listview11中

我尝试了这个,但没有成功。没有向listview1添加任何内容

private void button1_Click(object sender, EventArgs e)
    {
        if (cn.State == ConnectionState.Closed) cn.Open();
        cm.Connection = cn;
        if (comboBox3.Enabled == true)
        {
            string searchFor2 = comboBox1.Text;
            string searchFor3 = comboBox2.Text;
            string selectSql = "SELECT " + searchFor2 + ", " + searchFor3 + " FROM itmsparts";
            SqlCommand com = new SqlCommand(selectSql, cn);
            try
            {
                using (SqlDataReader read1 = com.ExecuteReader())
                {
                    using (SqlDataReader read1 = com.ExecuteReader())
                {
                    while (read1.Read())
                    {
                        ListViewItem parent = listView1.Items.Add(read1[0].ToString());
                        parent.SubItems.Add(read1[1].ToString());
                    }
                }
                }
            }
            finally
            {

            }
        }
    }
您不能使用
read1[“searchFor2”]
获取字段名

尝试:

当你说

阅读1[“搜索2”]

这意味着它将尝试搜索名为“searchFor2”的列。您需要删除双引号

item.Text = (read1[searchFor2].ToString());
item.SubItems[1].Text = (read1[searchFor3].ToString());

必须更改该部分,并且它正在工作:)

定义“不工作”。有错误吗?生成的查询是否与您预期的一样?它是怎么失败的?我想你想要的是SelectedValue,而不是ComboBox的文本。你是否尝试过调试
selectSql
的值,并直接在db上进行调试?谢谢你的回复@DavidP,但是你能编辑我的代码以便我更好地理解Read1[“searchFor2”]-这意味着它试图搜索名为
searchFor2
的列,但实际上您没有这样的列,请使用索引0,1感谢您的答案@juan。。但是仍然没有向listview添加任何内容。。列中的值不会添加到listview1@user5456980如果仍然没有添加,请指定错误并确保表中有一些数据。在
新的SqlCommand(selectSql,cn)之前,您可以显示
selectSql
变量中的内容吗检查编辑。。这就是我的按钮点击事件中的所有内容我说当你按下按钮时,执行调试停止以查看字符串的值仍然没有添加任何项目。。应该在表中搜索我在组合框中选择的列名称,并将这些列中的项目添加到ListView1中,这样我就不会发现代码有任何问题。我觉得不错。检查您的表是否有一些值。调试代码并检查失败的地方。
item.Text = (read1[searchFor2].ToString());
item.SubItems[1].Text = (read1[searchFor3].ToString());
using (SqlDataReader read1 = com.ExecuteReader())
                {
                    while (read1.Read())
                    {
                        ListViewItem parent = listView1.Items.Add(read1[0].ToString());
                        parent.SubItems.Add(read1[1].ToString());
                    }
                }