gpt4 book ai didi

c# - AddWithValue 方法 (C#) 什么都不做

转载 作者:行者123 更新时间:2023-11-30 20:14:31 25 4
gpt4 key购买 nike

我目前正在编写一个类来处理我的应用程序中的所有数据库事件,因此我找到了执行更新查询的方法。

截至目前,我正在返回并显示命令文本的内容以进行检查,看起来不错:

UPDATE news SET title = @title, newsContent = @newsContent, excerpt = @excerpt, date = @date, urlTitle = @urlTitle, isPublished = @isPublished WHERE (id = @id);

所以,换句话说,很好。下一步是用实际值替换所有@values——这就是我遇到问题的地方。什么都没发生。 AddWithValue 方法似乎什么也没做,我发现没有理由这样做。

public string updateQuery(string table, string[] fields, object[] values, string conditionField, object conditionValue)
{
try
{
StringBuilder cmd = new StringBuilder("UPDATE " + table + " SET ");

int i = 1;
foreach (string s in fields)
{
if (i == fields.Length)
{
cmd.Append(s + " = @" + s + " ");
}
else
{
cmd.Append(s + " = @" + s + ", ");
}

i++;
}

cmd.Append("WHERE (" + conditionField + " = @" + conditionField + ");");
command.CommandText = cmd.ToString();

int j = 0;
foreach (object o in values)
{
command.Parameters.AddWithValue("@" + fields[j], o);
j++;
}
command.Parameters.AddWithValue("@" + conditionField, conditionValue);

command.ExecuteNonQuery();
connection.Close();

return command.CommandText;
}
catch (Exception ex)
{
throw ex;
}
}

有人吗?

最佳答案

“它什么都不做”是什么意思?您的意思是执行命令时参数没有值吗?或者命令文本保持不变?

如果是后者,那么这是意料之中的。该命令不会更改查询文本,它会将查询文本与参数值一起发送到服务器。

关于c# - AddWithValue 方法 (C#) 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/440999/

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