gpt4 book ai didi

c# - 在c#上的查询中添加参数

转载 作者:行者123 更新时间:2023-11-29 07:33:20 24 4
gpt4 key购买 nike

在 aspx 页面的代码隐藏中,我在 sql 查询中的参数上传递值时遇到问题。

我使用MySql数据库。

第 1 步:

我在列出查询的输出中添加:

while (reader.Read())
{
idcolor = reader["idcolor"].ToString();
colorList.Add(idcolor.ToString());
}

ns = string.Join("','", colorList.ToArray());

调试中,输出为:

ns = red','green

第 2 步:

我需要在 SQL 查询中使用string ns 的值。

并在参数中传递string ns的值:

str = null;
str = ns == null ? "" : ns.ToString();

sql = @" SELECT * FROM Experience WHERE Colors IN (?); ";

DataSet dsColors = new DataSet();

using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
{
cn.Open();

using (OdbcCommand cmd = new OdbcCommand(sql, cn))
{

cmd.Parameters.AddWithValue("param1", Server.UrlDecode(str.ToString()));

OdbcDataAdapter adapter = new OdbcDataAdapter(cmd);
adapter.Fill(dsColors);
}
}

return dsColors;

第 3 步:

如果在查询中使用:

sql = @" SELECT * FROM Experience WHERE Colors IN (?); ";

数据集中的输出为空。

如果在查询中使用:

sql = @" SELECT * FROM Experience WHERE Colors IN ( '" + Server.UrlDecode(str.ToString()) + "' ); ";

数据集中的输出是正确的。

有人知道我该如何解决这个问题吗?

你能推荐一下吗?

你能帮我吗?

提前谢谢你。

最佳答案

你必须使用MySql.Data.MySqlClient;连接到Mysql:

sql = @" SELECT * FROM Experience WHERE Colors IN (@param1,@param2) ";

DataSet dsColors = new DataSet();

using ( MySqlConnection cn =
new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
{
cn.Open();

using (MySqlCommand cmd = new MySqlCommand(sql, cn))
{

cmd.Parameters.Add("@param1", colorList[0]/ToString());
cmd.Parameters.Add("@param2",colorList[1].ToString());
MySqlDataAdapter adapter = new MySqlaAdapter(cmd);
adapter.Fill(dsColors);
}
}

关于c# - 在c#上的查询中添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809841/

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