gpt4 book ai didi

c# - 必须声明标量变量 “@Login” 。尝试向 SqlDataSource 添加参数时出错

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

我有这个错误:必须声明标量变量“@Login”。

我的代码:

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["intranetv2"].ConnectionString))
{

SqlCommand cmd = new SqlCommand("insert into [MyBase].[Dbo].[LogErrors] (Username, StackTrace, ShortDescription, DetailDescription, ErrorType) VALUES (@Login, @Stack, @Message, @Txt, @Source)", conn);

SqlParameter param = new SqlParameter();
param.ParameterName = "Login";
param.Value = user.Login;
param.ParameterName = "Stack";
param.Value = ex.StackTrace;
param.ParameterName = "Message";
param.Value = ex.Message;
param.ParameterName = "Txt";
param.Value = Txt;
param.ParameterName = "Source";
param.Value = ex.Source;
// 3. add new parameter to command object
cmd.Parameters.Add(param);
conn.Open();
return cmd.ExecuteNonQuery();
}

我尝试在参数中使用'@',但我有同样的错误。

最佳答案

您必须为每个参数创建一个新的 SqlParameter,它应该是这样的:

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["intranetv2"].ConnectionString))
{

SqlCommand cmd = new SqlCommand("insert into [MyBase].[Dbo].[LogErrors] (Username, StackTrace, ShortDescription, DetailDescription, ErrorType) VALUES (@Login, @Stack, @Message, @Txt, @Source)", conn);

SqlParameter param = new SqlParameter();
param.ParameterName = "@Login";
param.Value = user.Login;
cmd.Parameters.Add(param);

SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@Stack";
param2.Value = ex.StackTrace;
cmd.Parameters.Add(param2);
(...)

关于c# - 必须声明标量变量 “@Login” 。尝试向 SqlDataSource 添加参数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17366045/

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