为什么我的代码不会写入SQL?

 小龙2602902913 发布于 2023-01-12 16:05

我正在编写一个应用程序来将文本存储到SQL数据库,但是我的代码抛出一个异常,说"变量名@ par1已经被声明了",我不知道如何使这个工作,并希望一些帮助解决这个问题请尽可能请=]

违规代码如下

 private void SMSGetter()
    {
         try {

                DecodedShortMessage[] messages = Comm.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Sim);
                SqlConnection Conn = new SqlConnection("Data Source=*********;Initial Catalog=********;User ID=**********;Password=***********");
                SqlCommand com = new SqlCommand();
                com.Connection = Conn;
                Conn.Open();
                foreach (DecodedShortMessage message in messages)
                {

                    //com.CommandText = ("INSERT INTO SMSArchives(Message,Blacklist) VALUES ('" + message.Data.UserDataText + "', 'Yes')");
                    //com.ExecuteNonQuery();
                    com.CommandText = ("INSERT INTO SMSArchives(Message,Blacklist) VALUES (@par1,@par2)");
                    com.Parameters.AddWithValue("@par1", message.Data.UserDataText);
                    com.Parameters.AddWithValue("@par2", "Yes");
                    com.ExecuteNonQuery();
                }
                Conn.Close();

            }
            catch (Exception ex) {
                Log(ex.ToString());
            }
        }

Marc Gravell.. 6

您对每次迭代使用相同的命令,但每次都添加参数.试着打电话

com.Parameters.Clear();

在每次循环迭代结束时.您还可以预先创建参数,并设置.Value每次迭代 - 可能稍微快一些.

另外:修复SQL注入漏洞:)

1 个回答
  • 您对每次迭代使用相同的命令,但每次都添加参数.试着打电话

    com.Parameters.Clear();
    

    在每次循环迭代结束时.您还可以预先创建参数,并设置.Value每次迭代 - 可能稍微快一些.

    另外:修复SQL注入漏洞:)

    2023-01-12 16:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有