【发布时间】:2017-03-04 10:09:02
【问题描述】:
我正在尝试从我的控制器插入到我的数据库中。我已经调试过,它永远不会进入异常。但我看不到数据库上的值。
这是我的sp:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[RegisterUser]
-- Add the parameters for the stored procedure here
@Username nvarchar(10),
@Password nvarchar(10),
@Mail nvarchar(10),
@Birthday date
AS
BEGIN
SET NOCOUNT ON
INSERT INTO Users
(
Username,
Pass,
Mail,
Birthday
)
VALUES
(
@Username,
@Password,
@Mail,
@Birthday
)
END
在我的模型上,我使用了这种方法:
public bool registerUser(UserModel user)
{
bool isOk = false;
using (SqlConnection connection = DbConnection.OpenConnection2())
{
try
{
using (SqlCommand command = new SqlCommand("RegisterUser", connection))
{
command.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder.DeriveParameters(command);
command.Parameters.Add(new SqlParameter("@UserName", SqlDbType.VarChar)).Value = user.userName.Trim();
command.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar)).Value = user.password.Trim();
command.Parameters.Add(new SqlParameter("@Mail", SqlDbType.VarChar)).Value = user.mail.Trim();
command.ExecuteNonQuery();
}
}
catch (Exception e)
{
}
finally
{
if (connection.State.Equals(ConnectionState.Open))
{
connection.Close();
isOk = true;
}
}
}
return isOk;
}
关于为什么这不起作用的任何想法?
谢谢
【问题讨论】:
-
您的存储过程中有一个必需的参数(@Birthday 日期),但您没有提供它。这可能会导致问题。
-
你的用户表是如何定义的?生日属性有默认值吗?
-
生日允许使用空值。
标签: c# sql asp.net stored-procedures