MySQL选择带参数的查询

时间:2014-06-12 18:14:47

标签: c# mysql select

我正在尝试使用带有c#的MYSQL选择查询。

以下查询搜索“ID”工作正常:

conn = new MySqlConnection(cs);
conn.Open();
cmd = conn.CreateCommand();
cmd.CommandText = "select * from catalog_product_entity where entity_id = ?Id";
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
cmd.Parameters.Add("?Id", SqlDbType.Text).Value = ProductList[i].ProductId.ToString();
adp.Fill(MagentoProduct);

现在,我想在表格中搜索确切的字符串值。我正在使用以下代码并给出空结果:

我的代码:

                            conn = new MySqlConnection(cs);
                            conn.Open();
                            cmd = new MySqlCommand("select * from catalog_category_entity_varchar where value = @Value;", conn);
                            cmd.Parameters.AddWithValue("@Value", "Storybooks");
                            MySqlDataReader r = cmd.ExecuteReader();

                            while (r.Read())
                            {
                                log.WriteEntry(r.GetString("value"));
                            }

2 个答案:

答案 0 :(得分:3)

这是问题所在:

where value = '?cname'

指定?cname作为您要搜索的文字值 - 当您实际只想要参数时。删除引号,它应该没问题:

where value = ?cname

(您应该使用using语句进行连接和命令,请注意......)

答案 1 :(得分:0)

您可以尝试使用SQL Reader

c = new MySqlCommand("select * from catalog_product_entity where column_nam = @Value;", conn);
c.Parameters.AddWithValue("@Value", your string);
MySqlDataReader r = c.ExecuteReader();

然后使用Reader方法,如reader.GetString(" column_name"),....