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

C# 通过ASP.NET 3.5 C方法插入表时返回异常,c#,asp.net,sql,stored-procedures,C#,Asp.net,Sql,Stored Procedures,我有一个方法,它向SQLServer进程发送两个变量,一个int和一个分隔字符串 从调试器复制的变量值: detailId: 5 fileNames: "recruiter.txt|cert.pdf" 方法: public void InsertFiles(int detailId, string fileNames) { ConnectionStringSettings connString = ConfigurationManager.ConnectionStrings["PRAD

我有一个方法,它向SQLServer进程发送两个变量,一个int和一个分隔字符串

从调试器复制的变量值:

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
exec [dbo].[InsertFiles] 5, "recruiter.txt|cert.pdf"
调试时收到的异常:

{"Incorrect syntax near 'dbo'."}
然而,当我从程序执行时:

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
exec [dbo].[InsertFiles] 5, "recruiter.txt|cert.pdf"

它很好用。由于在上述方法的catch块中捕获了错误,因此没有代码端。我被难住了。

您需要指定该命令是一个存储过程:

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;

您需要指定该命令是一个存储过程:

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;

啊,你比我快了-我正要发布同样的东西。我被抓了很多次,那一次;doh。谢谢D。我讨厌那些简单的错误,永远也找不到。啊,你刚刚打败了我-我正要发布同样的东西。我被抓了很多次,那一次;doh。感谢D。讨厌简单的错误,永远找不到。