谁能告诉我这一段C#代码中的错误到底在哪里?

Padma br
md.CommandText = "select * from HFour where ID=" + id[num];
SqlDataReader re = cmd.ExecuteReader();

if (re.HasRows)
{
    while (re.Read())
    {
        oldvalue.ID = Convert.ToInt32(re[0]);
        oldvalue.Name = re[1].ToString();
        oldvalue.Description = re[2].ToString();
        oldvalue.SourceID = re[3].ToString();
        if (re[4] !=DBNull.Value)
        {
            oldvalue.SourceTypeID = Convert.ToInt32(re[4]);
        }
        else
        { 
        }
        oldvalue.CreatedOn = Convert.ToDateTime(re[5]);
        oldvalue.CreatedBy = re[6].ToString();
        if (re[7] != DBNull.Value)
        {
            oldvalue.ModifiedOn = Convert.ToDateTime(re[7]);
        }
        oldvalue.ModifiedBy = re[8].ToString();
        oldvalue.HThreeID =                                    Convert.ToInt32(re[9].ToString());
        oldvalue.IsActive = Convert.ToBoolean(re[10].ToString());
    }
    re.Close();

string command = "update HFour set Name='" + oldvalue.Name + "'," +
                 "Description='" + oldvalue.Description + "'," + 
                 "SourceID='" + oldvalue.SourceID + "'," + "SourceTypeID=" + 
                  oldvalue.SourceTypeID + "," + "CreatedOn='" + 
                  oldvalue.CreatedOn + "'," + "CreatedBy='" + 
                  oldvalue.CreatedBy + "'," + "ModifiedBy='" + 
                  oldvalue.ModifiedBy + "'," + "ModifiedOn='" +  
                  oldvalue.ModifiedOn + "'," + "HThreeID=" + 
                  oldvalue.HThreeID + "," + "IsActive='" + 
                  oldvalue.IsActive + "' where ID=" + id[num];
cmd.CommandText = command;
int reed = cmd.ExecuteNonQuery();

错误如下:

System.Data.dll中发生类型为'System.Data.SqlClient.SqlException'的异常,但未在用户代码中处理

附加信息:

','附近的语法不正确

任何建议将不胜感激

克里斯托斯(Christos)

问题出在您生成的命令中。它的格式不正确。

但是,此代码存在更严重的问题。它容易受到SQL注入的攻击为了避免这种情况,您必须构建一个参数化查询,如下所示:

string command = "UPDATE HFour SET Name=@Name, Description=@Description"; 
command.Parameters.Add(new SqlParamter("@Name",oldvalue.Name));
command.Parameters.Add(new SqlParamter("@Description",oldvalue.Description));

显然,第一个sql查询也是如此。

"select * from HFour where ID=" + id[num];

您还必须对此进行参数化查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

谁能告诉我这段代码在C#中到底意味着什么?

这一段代码在做什么?

c 中的石头剪刀布游戏。谁能告诉我我的错在哪里?

告诉我Anacron任务中的错误在哪里?

我不明白为什么这段代码会出现分段错误。拜托,谁能告诉我我在哪里分配了无法使用的内存

谁能告诉我为什么我在此C代码中出现分段错误?

谁能告诉我快速排序代码中的错误是什么

我的调试器说我有一个段错误,但无法告诉我在特定情况下会发生在哪里

谁能告诉我这段代码的作用?

谁能告诉我为什么这一次有效?

c中的分段错误。谁能告诉我如何解决它?

试图通过MPI中的多个等级绕行发送阵列,但遇到段错误。谁能告诉我为什么?

我到底在哪里可以查看500条错误的错误日志?

我的代码到底在哪里不符合键和值类型的规范?

CSVkit到底在哪里?

错误地使用了当前的工作目录...我的数据库到底在哪里?

这一段逻辑是怎么回事?Java,括号

memset_s():这一段文本的标准含义是什么?

谁能告诉我为什么我的代码显示的pi值错误?

关闭C#中的一段代码使用的过程

在 Android 中到底在哪里插入 onPause()?

谁能告诉我他们是否在以下PHP代码中看到错误?

谁能告诉我我的代码出了什么问题

你好。谁能告诉我,为什么是我的代码段=“‘+ lblSection.Text +’” paramater犯规作品

谁能告诉我这段代码中的错误是什么?我想在数据框中获取列表的信息,但我得到了空

谁能告诉我这段代码是什么意思?

谁能告诉我上述代码之间的逻辑区别

谁能告诉我代码中发生了什么?

谁能告诉我是否使用正确的代码来打印此ArrayList中的内容?