gpt4 book ai didi

c# - MySqlCommand 似乎没有传递参数

转载 作者:行者123 更新时间:2023-11-29 00:48:56 26 4
gpt4 key购买 nike

下面的代码似乎没有将参数值插入到查询中(查询没有返回任何内容)。如果我在数据库中测试该查询(当然我输入传递的值而不是 ?author 参数并返回一些行。为什么?

   var conn = new MySqlConnection(connectionString);

MySqlCommand comm = new MySqlCommand("", conn);

comm.Parameters.Add(new MySqlParameter("?author", author)); //I've also tried AddWithValue method

comm.CommandText = .....;

conn.Open();
MySqlDataReader myReader = comm.ExecuteReader();

try
{
while (myReader.Read())
{
//unreachable code because nothing is returned
}
}
catch
{
myReader.Close();
conn.Close();
categoriesList.Clear();
}
finally
{
myReader.Close();
conn.Close();
}

最佳答案

因为您使用的是 MySQLCommand,所以不要在参数名称中添加 ?:

如果你有这样的查询:

comm.CommandText = "INSERT INTO tableName(colA) VALUES (@param1)";
comm.CommandType = CommandType.Text;

那么你必须这样做:

comm.Parameters.AddWithValue("param1", "yourValue");

更新

假设您的查询条件为 LIKE:

"SELECT * FROM WHERE colA Like '%value%'"

然后试试这个:

comm.CommandText = "SELECT * FROM WHERE colA Like CONCAT('%', @param1, '%'");
comm.Parameters.AddWithValue("param1", "yourValue");

关于c# - MySqlCommand 似乎没有传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com