繁体   English   中英

存储过程未更新数据库ASP.NET C#

[英]Stored Procedure not updating database asp.net c#

这是数据库中的存储过程。

CREATE PROCEDURE Taskedb_Insert
(

    @nNewID int output,
    @sFromEmail varchar(200)  = NULL,
    @sToEmail varchar(200)  = NULL,
    @sEmailSubject varchar(400)  = NULL,
    @sEmailBody varchar(MAX)  = NULL,
    @dEmailDate datetime  = NULL
)   
AS
 BEGIN

INSERT INTO [Taskedb]
(

    FromEmail, 
    ToEmail, 
    EmailSubject, 
    EmailBody, 
    EmailDate
) VALUES (

    @sFromEmail,
    @sToEmail,
    @sEmailSubject,
    @sEmailBody,
    @dEmailDate
)
SELECT @nNewID = @@IDENTITY
END

这是ASP.NET C#中的代码

string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=tbd_email_tasks;Integrated Security=True";

SqlConnection connection = new SqlConnection(connectionString);

connection.Open();

SqlCommand cmd = new SqlCommand("Taskedb_Insert", connection);
cmd.CommandType = System.Data.CommandType.StoredProcedure;

SqlParameter p1 = cmd.Parameters.Add("@nNewID", System.Data.SqlDbType.Int);
p1.Direction = System.Data.ParameterDirection.Output;

SqlParameter p2 = cmd.Parameters.Add("@sEmailSubject", System.Data.SqlDbType.VarChar);
p2.Value = subject;

SqlParameter p3 = cmd.Parameters.Add("@sEmailBody", System.Data.SqlDbType.VarChar);
p3.Value = body;

SqlParameter p4 = cmd.Parameters.Add("@sToEmail", System.Data.SqlDbType.VarChar);
p4.Value = to;

SqlParameter p5 = cmd.Parameters.Add("@sFromEmail", System.Data.SqlDbType.VarChar);
p5.Value = from;

SqlParameter p6 = cmd.Parameters.Add("@dEmailDate", System.Data.SqlDbType.DateTime);
p6.Value = date;

//connection.Open();
cmd.ExecuteNonQuery();

它不更新数据库。 请帮我。

谢谢大家的帮助

我收到此错误是因为我的表Taskedb有

nvarchar(50)

但我注入了67个字符的强度,这导致了此错误。 更改为

nvarchar(最大)

问题已解决

您可以检查它是否可能在事务范围内或类似范围内。 当然,我会将您的数据库连接和命令包装在using块中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM