我有一个名为Table1
的Access表,它有一个名为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;
缺少什么我在这里?
谢谢!
编辑:这个工作,而这也正是我最终使用:
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单引号? – 2013-02-28 21:08:21