gpt4 book ai didi

c# - 通过 ASP.NET 3.5 C# 方法插入表时返回异常

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

我有一个方法可以将两个变量(一个 int 和一个分隔字符串)发送到 SQL Server proc。

变量值(从调试器复制):

detailId: 5
fileNames: "recruiter.txt|cert.pdf"

方法:

public void InsertFiles(int detailId, string fileNames)
{
ConnectionStringSettings connString = ConfigurationManager.ConnectionStrings["PRADB"];
using (SqlConnection conn = new SqlConnection(connString.ToString()))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "dbo.InsertFiles";
cmd.Parameters.AddWithValue("@detailId", detailId);
cmd.Parameters.AddWithValue("@fileNames", fileNames);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
string exc = ex.ToString();
}
finally
{
conn.Close();
}
}
}

这是过程:

ALTER PROCEDURE [dbo].[InsertFiles]
@detailId int,
@fileNames varchar(max)

AS
BEGIN

SET NOCOUNT ON;

insert into [dbo].[PRA_Files] (detailId, fileNames)
values (@detailId, @fileNames)
END

调试时收到的异常:

{"Incorrect syntax near 'dbo'."}

然而,当我从过程中执行时:

exec [dbo].[InsertFiles] 5, "recruiter.txt|cert.pdf"

它工作正常。错误不在代码端,因为它在上述方法的 catch block 中被捕获。我很难过。

最佳答案

需要指定命令为存储过程:

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "dbo.InsertFiles";
cmd.Parameters.AddWithValue("@detailId", detailId);
cmd.Parameters.AddWithValue("@fileNames", fileNames);
cmd.CommandType = CommandType.StoredProcedure;

关于c# - 通过 ASP.NET 3.5 C# 方法插入表时返回异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166004/

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