Как выбрать идентификатор по имени в базе данных access
я пытаюсь ввести как имя в txtbox, а затем нажать кнопку, чтобы поместить идентификатор этого имени в счетчик, но я получаю ошибку (
Data type mismatch in criteria expression.)
когда нажимаете кнопку и если это другой язык, то он показывает ошибку syntx какие-то идеи ?
Что я уже пробовал:
OleDbConnection cn = new OleDbConnection(); cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database9.accdb"; OleDbCommand cmd = new OleDbCommand(); cn.Open(); cmd.Connection = cn; cmd.CommandText = "Select ID from Contacts where City=" +srchbox.Text; OleDbDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { txtsrch.Text = reader.GetString(reader.GetOrdinal("ID")); o = Int32.Parse(txtsrch.Text); }
F-ES Sitecore
Чтобы ответить на ваш конкретный вопрос, вам нужно поместить текст в кавычки. Ваш sql-это
Выберите ID из списка контактов, где City=London
так и должно быть
Выберите ID из списка контактов, где City='London'
cmd.CommandText = "Select ID from Contacts where City='" +srchbox.Текст + "'";
Однако вы не должны строить sql таким образом, google how to use parameterized queries as the code you are using leaves you open to sql injection attacks.
Richard Deeming
cmd.CommandText = "Select ID from Contacts where City = ?"; cmd.Parameters.AddWithValue("city", srchbox.Text); using (OleDbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int id = reader.Field<int>("ID"); // Do something with the ID here... } }