Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
The chances are that that will cure your problem at the same time.
string sql = "SELECT prodname FROM inventory WHERE prodname=@PN";
using (OleDbConnection conn = new OleDbConnection(connstring))
{
using (OleDbCommand cmd = new OleDbCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@PN", productname);
conn.Open();
using (OleDbDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
...
But do note that that will display only the last such value in the table - if there are more than one, only the last one returned will be displayed. Personally, I'd check the count and make sure there was only one.