我正在尝试创建一个简单的添加用户页面,该页面通过 Web 服务、Linq 和存储过程。我已将存储过程的结果设置为布尔值。问题是它总是以虚假的形式出现。而且我看不到错误所在,因为它没有返回任何“错误”消息。
我认为我的主 .aspx 页面没有任何问题,因为它似乎将数据传递到 Web 服务。所以我只会发布其余的代码:
网络服务.cs:
public bool AddUser(string Name, int Contact, string Email, string Password, bool Admin, string ImageURL)
{
bool result = false;
using (DataClassesDataContext dbcontext = new DataClassesDataContext())
{
var query = dbcontext.CreateUser(Name, Contact, Email, Password, Admin, ImageURL); //as far as I can see, the values get passed through these parameters. But the query returns false.
result = Convert.ToBoolean(query);
}
return result;
}
DataContext.designer.cs:
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.CreateUser")]
public int CreateUser([global::System.Data.Linq.Mapping.ParameterAttribute(Name="Name", DbType="VarChar(50)")] string name, [global::System.Data.Linq.Mapping.ParameterAttribute(Name="ContactNo", DbType="Int")] System.Nullable<int> contactNo, [global::System.Data.Linq.Mapping.ParameterAttribute(Name="Email", DbType="VarChar(50)")] string email, [global::System.Data.Linq.Mapping.ParameterAttribute(Name="Password", DbType="VarChar(50)")] string password, [global::System.Data.Linq.Mapping.ParameterAttribute(Name="Admin", DbType="Bit")] System.Nullable<bool> admin, [global::System.Data.Linq.Mapping.ParameterAttribute(Name="ImageURL", DbType="NVarChar(200)")] string imageURL)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), name, contactNo, email, password, admin, imageURL);
return ((int)(result.ReturnValue));
}
存储过程创建用户:
ALTER PROCEDURE dbo.CreateUser
@Name varchar(50),
@ContactNo int,
@Email varchar(50),
@Password varchar(50),
@Admin bit,
@ImageURL nvarchar(200)
AS
INSERT INTO Users
([Name], ContactNo, Email, Password, Admin, ImageURL)
VALUES
(@Name, @ContactNo, @Email, @Password, @Admin, @ImageURL)