【发布时间】:2014-08-31 17:04:20
【问题描述】:
我正在尝试在 C# 中调用存储过程。
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "updateData";
command.Parameters.Add(new SqlParameter("@inrego", rego));
command.Parameters.Add(new SqlParameter("@inOprt", oprt));
command.Parameters.Add(new SqlParameter("@inService", service));
connection.Open();
int update = command.ExecuteNonQuery();
Console.WriteLine(update);
connection.Close();
}
更新在控制台显示 1,但数据库仍未更新。
这是存储过程
CREATE PROCEDURE [dbo].updateData
@inrego varchar(5),
@inOprt char(3),
@inService as varchar(50)
AS
delete from buses where rego = @inrego;
insert into buses (rego, operator,service) values(@inrego, @inOprt, @inService);
RETURN 0
手动运行存储过程,又名
USE [C:\USERS\---\DOCUMENTS\VISUAL STUDIO 2013\PROJECTS\---\TEST.DB.MDF]
GO
DECLARE @return_value Int
EXEC @return_value = [dbo].[updateData]
@inrego = N'1',
@inOprt = N'2',
@inService = N'3'
SELECT @return_value as 'Return Value'
GO
工作,并成功更新数据库,但 C# 形式的代码没有。
【问题讨论】:
-
我怀疑您可能只需要“dbo.updateData”来进行通话。
-
刚刚尝试过@EugenePodskal。不幸的是,结果相同。
-
@GordonLinoff 修改它以在开始时添加 dbo,但仍然无法正常工作
-
@matthew5025 。 . .可能是权限问题。
标签: c# sql sql-server tsql stored-procedures