在用数据库中的数据填充comboBox时,我创建了SqlDataReader。我希望检索包含产品名称的列

时间:2018-06-13 08:59:13

标签: c# .net database sqldatareader

这是代码。

void ProdFill()
{
    string coninfo = "datasource=DESKTOP-1F4329L;port=3306;username=root;password=root";
    string query = "select * from prodTest.product;";
    SqlConnection conn = new SqlConnection(coninfo);
    SqlCommand cmdDb = new SqlCommand(query, conn);
    SqlDataReader myReader;

    try
    {
        conn.Open();
        myReader = cmdDb.ExecuteReader();
        while(myReader.Read())
        {
            string prodname = myReader.GetString("pname");
            comboBox2.Items.Add(prodname);
        }
    }
}

它出现了错误:

string prodname = myReader.GetString("pname"); 

说明

  

它有无效的参数。无法从字符串转换为int。

2 个答案:

答案 0 :(得分:0)

在GetString()

中传递列索引

答案 1 :(得分:0)

您可以尝试以下方法

如果您想按列名获取数据,那么您可以使用

string prodname = myReader["pname"].ToString();

如果您知道列的索引,那么您可以使用

   string prodname = myReader.GetString(0); //you can replace 0 with index of column

myReader获取数据后,您可以将其添加到组合框

comboBox2.Items.Add(prodname);