【发布时间】:2014-01-31 05:37:02
【问题描述】:
每当我运行以下代码时,我都会得到预期的输出
private int NewBorrower(string givenName, string surname)
{
int returnValue = 0;
using (conn)
{
conn.Open();
string sql = "AddBorrower";
cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@givenName", SqlDbType.NVarChar).Value = givenName;
cmd.Parameters.Add("@surname", SqlDbType.NVarChar).Value = surname;
SqlParameter id = cmd.Parameters.Add("@id", SqlDbType.Int);
id.Direction = ParameterDirection.ReturnValue;
try
{
cmd.ExecuteNonQuery();
returnValue = (int)cmd.Parameters["@id"].Value;
}
catch (Exception e)
{
Console.WriteLine("Commit Exception Type: {0}", e.GetType());
Console.WriteLine(" Message: {0}", e.Message);
}
}
return returnValue;
}
从前端运行时,我得到了我想要的结果,但是当我检查数据库时,它没有显示在表中。
这也是正在使用的存储过程
CREATE PROCEDURE [dbo].[AddBorrower]
@givenName nvarchar(50),
@surname nvarchar(50),
@id int = NULL OUTPUT
AS
INSERT INTO llBorrowers (givenName, surname)
VALUES (@givenName, @surname);
SET @id = SCOPE_IDENTITY();
RETURN @id
我尝试在 c# 和 sql 端都使用事务,但这根本不起作用。 我还应该提到它是一个本地数据库,但我不确定这会影响它。
【问题讨论】:
-
您在寻找正确的数据库吗?此外,如果您将那些已弃用的用户实例与 .mdf 文件一起使用,并且它包含在您的项目中,并且“复制到输出目录”设置为 true,那么每次构建项目时,该副本都会覆盖 bin 文件夹中的那个。
-
如果这是问题,我如何将其设置为 false?我不知道那个设置在哪里。
-
好吧,如果您的项目中包含 .mdf,请在解决方案资源管理器中单击它并按 alt+enter(至少“常规开发”是这样),您应该会看到该项目属性出现
-
我试过了,没有解决问题。
-
不,不一样。检查你的 BIN\DEBUG\DATA 文件夹,你会在那里找到一个 MDF
标签: c# sql sql-server stored-procedures commit