传递参数以从c#访问查询

我设计了一个访问查询,如下所示:

SELECT Replace(names,'lion','kiss') AS Expr1 FROM table1; 

狮子这两个值是暂时的,现在我希望这些是两个变量,这样我就可以从c#中传递值。

如何从c#调用此查询,并将其传递给两个值。

我正在使用Access 2007。

谢谢你的帮助 :)

尝试这样的事情(我在这个问题上找到了这个 ):

 public void ReplaceColumnA(string oldvalue, string newvalue) { using(OleDbConnection connection1 = (OleDbConnection)DatabaseConnection.Instance.GetConnection()) { connection1.Open(); using(OleDbCommand sqlcmd2 = new OleDbCommand("queryname", connection1)) { sqlcmd2.Parameters.AddWithValue("param1", newvalue); sqlcmd2.Parameters.AddWithValue("param2", oldvalue); sqlcmd2.ExecuteNonQuery(); } } } 

Access查询将如下所示:

 UPDATE [t] SET [a] = ? WHERE [a] = ? 

您传递的参数名称无关紧要,它是您传递给它们的顺序。

通过使用“using”语句,您可以确保.NET正确释放连接和资源。

此外,我强烈建议切换到SQL Server Express Edition。 它是免费的,比你在Access中可以做的更有效。 真的,你只是继续在Access中继续射击……

你这样执行它:

sqlcmd2.ExecuteNonQuery();

我认为你需要修改这样的代码

  string q = "SELECT Replace(names,'{0}','{1}') AS Expr1 FROM table1"; //You can provide any values instead of LION and KISS string query = string.format(q,"LION","KISS") using(OleDbConnection cnn = (OleDbConnection)DatabaseConnection.Instance.GetConnection()) { cnn.Open(); using(OleDbCommand cmd = new OleDbCommand(query, cnn)) { OleDbDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader["Expr1"].toString()); } } }