gpt4 book ai didi

c# - MySql 插入带有 HTML 编码参数的空值

转载 作者:行者123 更新时间:2023-11-30 23:01:35 24 4
gpt4 key购买 nike

我已经创建了一个包含表的数据库,我正在尝试将我的参数化查询插入到表中,该查询是 HTML 编码的。我需要一个循环,它可以根据查询中的数据确定要添加的参数。循环执行得很好,并且在调试时所有正确的数据都被正确地放置在参数中。但是,一旦查询执行并且我检查了数据库,我看到添加了一条新记录,但所有列的所有值都为 null 或空。

我不明白为什么如果发送了正确的数据并且没有错误返回为什么会输入空白数据。有什么想法吗?

这是我的代码:查询:

INSERT into alerts (`emailAddress`,`authorName`,`alertSubj`,`alertBody`,`email`,`alertExpires`,`releaseDateTime`)
VALUES (@emailAddress,@authorName,@alertSubj,@alertBody,@email,@alertExpires,@releaseDateTime);

valueArray 中元素的图像:

emailAddress
authorName
alertSubj
alertBody
email
alertExpires
releaseDateTime

循环参数:

foreach(String data in valueArray)
{
String paraName = "\"";
paraName+="@" + valueArray[p];
paraName += "\"";
switch (valueArray[p])
{
case "emailAddress":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(emailAddress));
break;
case "twitter":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(twitter));
break;
case "email":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(email));
break;
case"sms":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(text));
break;
case "desktop":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(desktop));
break;
case "playSound":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(voice));
break;
case"releaseDateTime":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(releaseDate_Time));
break;
case "alertExpires":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(expiresDate_Time));
break;
case "alertSubj":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(alertSubject));
break;
case "alertBody":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(emailBody));
break;
case "shortMsgBody":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(shortAlert));
break;
case"authorName":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(author));
break;
case "criticality":
cmd.Parameters.AddWithValue(paraName, HttpUtility.HtmlEncode(level));
break;
default:
break;
}
p++;
}

cmd.ExecuteNonQuery();

最佳答案

不要在参数名称中添加引号。而不是

String paraName = "\"";
paraName+="@" + valueArray[p];
paraName += "\"";

就这样

String paraName = "@" + valueArray[p];

此外,由于您已经在数组中循环 - 无需添加另一个计数器。你可以做类似的事情

 foreach (String data in valueArray)
{
switch (data)
{
case "emailAddress":
cmd.Parameters.AddWithValue("@" + data, HttpUtility.HtmlEncode(emailAddress));
break;
....
}
}

关于c# - MySql 插入带有 HTML 编码参数的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23740640/

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