Ваш у CommandText
, или запрос SQL, есть потенциал для большого количества ошибок.
Прежде всего, у вас нет мест между SQL-ключевыми-словами, такими как ИЗБРАННЫМИ
, и ваши переменные (принимающий вас, переменные не дополнены местами):
newCmd.CommandText = "SELECT" + column + "FROM" + table + "WHERE" + primarykey + "=" + regno + "";
Необходимо сначала добавить места как это:
newCmd.CommandText = "SELECT " + column + " FROM " + table + " WHERE " + primarykey + "=" + regno + "";
Второе - то, что вы не обертываете ваш regno
стоимость с кавычками. Теперь, это могло validy быть, потому что стоимость числовая; если это так, можно проигнорировать кавычки, и вопрос должен выполнить прекрасный (после того, как добавление мест отметило выше). Однако, если это будет последовательность, вы захотите обернуть стоимость в кавычки как это:
newCmd.CommandText = "SELECT " + column + " FROM " + table + " WHERE " + primarykey + "=\"" + regno + "\"";
Однако независимо, действительно ли стоимость числовая или последовательность, я на самом деле рекомендовал бы, чтобы вы использовали подготовленное заявление вместо этого. Можно достигнуть этого с:
newCmd.CommandText = "SELECT " + column + " FROM " + table + " WHERE " + primarykey + "[email protected]";
newCmd.Parameters.AddWithValue("@regNo", regno);
Подготовленное заявление поможет облегчить потребность в том, чтобы не забывать обернуть стоимость в кавычки (это будет обращаться с этим для вас), и также добавит безопасность к вашему вопросу, помогая предотвратить Внедрение SQL.