C# 在查询中创建并使用参数
我正在编写一个小型XAML/C#/MySQL数据库,并希望创建一个接受参数的查询。但是,我正在设置的测试查询在尝试创建时失败C# 在查询中创建并使用参数,c#,mysql,xaml,C#,Mysql,Xaml,我正在编写一个小型XAML/C#/MySQL数据库,并希望创建一个接受参数的查询。但是,我正在设置的测试查询在尝试创建时失败 var con = new MySqlConnection(ClsVariables.StrDb); con.Open(); var command = new MySqlCommand("", con); command = new MySqlCommand("Create View r2_Add_Edit_View as SELECT
var con = new MySqlConnection(ClsVariables.StrDb);
con.Open();
var command = new MySqlCommand("", con);
command =
new MySqlCommand("Create View r2_Add_Edit_View as SELECT era.contact_id, era.n_family FROM era WHERE era.contact_id = @ContactID", con) command.ExecuteNonQuery();
con.Close();
当我将@ContactID更改为一个特定的数字时,它可以正常工作
之后,我将需要创建一个记录集,并将参数传递给它(但我可以在第二个问题中询问)
一如既往地谢谢你
当我将@ContactID更改为一个特定的数字时,它可以正常工作
您不需要传递参数,只需将其添加到命令中即可:
public class MySqlConnector
{
private readonly string _connString;
public MySqlConnector(string connString)
{
_connString = connString;
}
private MySqlCommand _command;
const string Sql = "Create View r2_Add_Edit_View as SELECT era.contact_id, era.n_family FROM era WHERE era.contact_id = @ContactID";
public void CreateView(int contactId)
{
if(_command == null)
{
_command = new MySqlCommand();
_command.CommandText = Sql;
_command.Connection = _connString;
}
_command.Parameters.AddWithValue("@ContactID", contactId);
_command.ExecuteNonQuery();
_command.Close();
}
}
尝试使用命令AddParameters方法 Add(“@ContactID”,SqlDbType.Int)
command.Parameters[“@ContactID”].Value=Value 请发布完整的代码谢谢Yair-我希望它是我可以在C#app中调用的东西,所以我真的不想每次都创建一个新的查询。你不必创建一个新的查询。你可以在类中缓存command对象,每次只设置不同的参数。对不起,我对这个有点陌生,所以不太确定如何做。这也不意味着查询不会被编译。@AndyDB看到了我的更新,它对
命令
对象提供了缓存支持。谢谢Yari-但是当我运行该代码时,我在ExecuteOnQuery上得到了一个异常错误:MySql.Data.MySqlClient.MySqlException类型的未处理异常发生在MySql.Data.dllI中,你能再给我一点帮助吗?谷歌说应该会帮助你。谢谢Gigi——虽然这很有趣,但这不是我想要的。