Stored Procedure "InsertUser"
ALTER procedure [dbo].[InsertUser]
(
@username as varchar(50),
@email as varchar(50),
@password as varchar(20)
)
as
if(not exists(select email from dataUser where email=@email))
begin
declare @lastnumber as integer
set @lastnumber =0
select top 1@lastnumber =cast(substring(user_id,8,9) as integer) from dataUser order by user_id desc
--insert
insert into dataUser (user_id,username,email,password,roleuser)
values ('USE-'+right(str(1000000000+(@lastnumber+1)),9),@username,@email,@password,'user')
return 0
end
else
return 1
this sp work fine when i execute it in SQL Server.
But can't work when i calling the SP from asp.net.
Public Class UserClass
Private _User_ID As String
Private _UserName As String
Private _Email As String
Private _Password As String
Private _RoleUser As String
Public Property User_ID() As String
Get
Return _User_ID
End Get
Set(ByVal value As String)
_User_ID = value
End Set
End Property
Public Property UserName() As String
Get
Return _UserName
End Get
Set(ByVal value As String)
_UserName= value
End Set
End Property
Public Property Email() As String
Get
Return _Email
End Get
Set(ByVal value As String)
_Email = value
End Set
End Property
Public Property Password() As String
Get
Return _Password
End Get
Set(ByVal value As String)
_Password = value
End Set
End Property
Public Property RoleUser() As String
Get
Return _RoleUser
End Get
Set(ByVal value As String)
_RoleUser = value
End Set
End Property
Private Sub closeDBcon(ByVal con As SqlConnection, ByVal cmd As SqlCommand)
If Not IsDBNull(cmd) Then
cmd.Dispose()
End If
If Not IsDBNull(con) Then
If (con.State = ConnectionState.Open) Then
con.Close()
con.Dispose()
End If
End If
End Sub
Public Function InsertNewUser() As String
Dim mycon As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("WebConnectionString").ConnectionString)
Dim insertcommand As SqlCommand = New SqlCommand("InsertUser", mycon)
insertcommand.CommandType = CommandType.StoredProcedure
insertcommand.Parameters.Add("paramuser_id", SqlDbType.VarChar, 15, "@user_id").Direction = ParameterDirection.Output
insertcommand.Parameters.Add("paramusername", SqlDbType.VarChar, 50, "@username").Value = UserName
insertcommand.Parameters.Add("paramemail", SqlDbType.VarChar, 50, "@email").Value = Email
insertcommand.Parameters.Add("parampassword", SqlDbType.VarChar, 20, "@password").Value = Password
Try
mycon.Open()
insertcommand.ExecuteNonQuery()
Return (insertcommand.Parameters("paramuser_id").Value.ToString())
Finally
closeDBcon(mycon, insertcommand)
End Try
End Function
End Class
Public Class UserManage
Inherits System.Web.UI.Page
Public Function InsertNewUser(ByVal _UserClass As UserClass)
Return (_UserClass.InsertNewUser())
End Function
End Class
<body>
<form id="form1" runat="server">
<div>
<table bordercolor="#000000" bordercolordark="#000000" cellpadding="4" cellspacing="2"
width="85%">
<tr>
<td align="center" colspan="2" width="27%">
<strong>REGISTER</strong></td>
</tr>
<tr>
<td width="27%">
UserName</td>
<td width="73%">
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtUserName"
Display="dynamic" ErrorMessage="Required" Font-Size="9pt"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td width="27%">
Email</td>
<td width="73%">
<asp:TextBox ID="txtEmail" runat="server" Width="77%"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtEmail"
Display="dynamic" ErrorMessage="Required" Font-Size="9pt"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail"
Display="Dynamic" ErrorMessage="Invalid" Font-Size="9pt" ValidationExpression="[\w\.-]+(\+[\w-]*)?@([\w-]+\.)+[\w-]+"></asp:RegularExpressionValidator></td>
</tr>
<tr>
<td width="27%">
Password</td>
<td width="73%">
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> <asp:RequiredFieldValidator
ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtPassword" Display="dynamic"
ErrorMessage="Required" Font-Size="9pt"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td width="27%">
Password Confirmation</td>
<td width="73%">
<asp:TextBox ID="txtConfirm" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtConfirm"
Display="dynamic" ErrorMessage="Required" Font-Size="9pt"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtKonfirmasi" Display="Dynamic" ErrorMessage="Not matched!"
Font-Size="9pt"></asp:CompareValidator></td>
</tr>
<tr>
<td width="27%">
</td>
<td width="73%">
<asp:Button ID="ButtonSubmit" runat="server" BackColor="Silver" BorderColor="Silver"
ForeColor="Black" OnClick="ButtonSubmit_Click" Text="SUBMIT" /></td>
</tr>
<tr>
<td colspan="2">
<asp:Label ID="ErrorMsg" runat="Server" CssClass="ErrorText" EnableViewState="False"
Width="540px"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
Partial Class Register
Inherits System.Web.UI.Page
Private Sub SetUserData(ByVal user As UserClass)
user.UserName = txtUserName .Text.Trim
user.Email = txtEmail.Text.Trim
user.Password = txtPassword.Text.Trim
End Sub
Protected Sub ButtonSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonSubmit.Click
If Page.IsValid Then
Dim USERS As UserClass = New UserClass()
SetUserData(USERS)
Try
Dim USERSMANAGE As UserManage = New UserManage()
If USERSMANAGE.ValidateUser(USERS) Then
Dim user_id As String = USERSMANAGE.InsertNewUser(USERS)
FormsAuthentication.SetAuthCookie(user_id, False)
Response.Cookies("MyWeb_cookies").Value = Server.HtmlEncode(txtUserName.Text)
Response.Redirect("Home.aspx")
End If
'Catch oe As SqlException
'If (oe.ErrorCode = 1) Then
'ErrorMsg.Text = "ERROR: This email address already registered.."
'Else
'ErrorMsg.Text = "ERROR: Could not add record, please " + " ensure the fields are correctly filled out"
'End If
Catch ex As Exception
Response.Write(ex.Message)
End Try
End If
End Sub
End Class
An error message "Procedure or function InsertUser has too many arguments specified", when i click on the SUBMIT button.
Please help me...as soon as possible.
Thank in advance.