gpt4 book ai didi

c# - 我如何解决此错误的C#

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:44 25 4
gpt4 key购买 nike

我想将数据插入数据库表:

myCommand.CommandText = "INSERT INTO Selectionner (IdPrestation,
IdPhrase, DegreUrgence,RisqueConcerne,rowguid,Cotation) " +
"VALUES ('" +new Guid(emp.IdPrestation) +
"', '" +new Guid(emp.IdPhrase)+ "', '" +
emp.DegreUrgence + "','" + emp.RisqueConcerne + "','" +
new Guid(emp.rowguid) + "','" + emp.Cotation + "')";


但这返回一个错误:


  Guid应包含32个数字和4个破折号
  (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。


如何解决此错误?

最佳答案

您的一个或多个

emp.IdPrestation //Or 
emp.IdPhrase //Or
emp.rowguid //Check them before creating


不是 GUID。这就是为什么它引发错误。

编辑:开始

如果解析操作成功,如何使用 Guid.TryParse()返回true。否则为假。

//How to parse safely
Guid IdPrestation;
Guid IdPhrase;
Guid rowguid;

if(Guid.TryParse(emp.IdPrestation, out IdPrestation) &&
Guid.TryParse(emp.IdPhrase, out IdPhrase) &&
Guid.TryParse(emp.rowguid, out rowguid) )
{
//all variables have been parse successfully
//Execute the sql query as follows using parameters
}


编辑:结束

同样,使用内联sql将参数作为直接字符串传递也是 unsafe bad practice。而是 use a parameterised query

myCommand.CommandText = "INSERT INTO yourTableName (c1, c2, ...)
VALUES (@p1, @p2,...)";
myCommand.Parameters.Add(new SqlParameter("p1", valueforCol1));
myCommand.Parameters.Add(new SqlParameter("p2", valueforCol2));
...

关于c# - 我如何解决此错误的C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836182/

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