У меня есть таблица доступа с именем Table1
, которая имеет поле с именем FieldA
. FieldA
имел тип данных данных.Почему этот запрос не возвращает результат?
FieldA
действительно содержит значение 010005.
Когда я выполнить запрос, он не находит совпадения. Если я запустил запрос в Access, он найдет значение.
OleDbConnection conn = null;
OleDbDataReader reader = null;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\\\server\\folder\\mydatabase.accdb");
conn.Open();
OleDbCommand cmd = new OleDbCommand("Select * FROM Table1 WHERE FieldA = @p1", conn);
cmd.Parameters.Add("@p1", OleDbType.VarChar);
cmd.Parameters["@p1"].Value = "010005";
reader = cmd.ExecuteReader();
dataGridView1.DataSource = reader;
Что мне здесь не хватает?
Спасибо!
EDIT: Это работает, и это то, что я в конечном итоге с помощью:
OleDbConnection conn = null;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\\\server\\folder\\mydatabase.accdb");
conn.Open();
string theValue = "010005";
string sql = string.Format("SELECT * FROM Table 1 where FieldA = '{0}'", theValue);
OleDbDataAdapter ada = new OleDbDataAdapter(sql, conn);
ada.Fill(dataTable1);
dataGridView1.DataSource = dataTable1;
это одиночные кавычки на @ p1? –