Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 插入存储过程不创建数据库记录_Asp.net_Sql Server 2005_Stored Procedures - Fatal编程技术网

Asp.net 插入存储过程不创建数据库记录

Asp.net 插入存储过程不创建数据库记录,asp.net,sql-server-2005,stored-procedures,Asp.net,Sql Server 2005,Stored Procedures,我有以下存储过程: ALTER PROCEDURE Pro_members_Insert @id int outPut, @LoginName nvarchar(50), @Password nvarchar(15), @FirstName nvarchar(100), @LastName nvarchar(100), @signupDate smalldatetime, @Company nvarchar(100), @Phone nvarchar(50), @Email

我有以下存储过程:

ALTER PROCEDURE Pro_members_Insert
@id int outPut,
@LoginName  nvarchar(50),
@Password   nvarchar(15),
@FirstName  nvarchar(100),
@LastName   nvarchar(100),
@signupDate smalldatetime,
@Company    nvarchar(100),
@Phone  nvarchar(50),
@Email  nvarchar(150),
@Address    nvarchar(255),
@PostalCode nvarchar(10),
@State_Province nvarchar(100),
@City   nvarchar(50),
@countryCode    nvarchar(4),
@active bit,
@activationCode nvarchar(50)
AS 

declare @usName as  varchar(50)
set @usName=''
select @usName=isnull(LoginName,'') from members where LoginName=@LoginName

if @usName <> ''
begin
    set @ID=-3

    RAISERROR('User Already exist.', 16, 1)
     return 
end

set @usName=''
select @usName=isnull(email,'') from members where Email=@Email

if @usName <> ''
begin
    set @ID=-4

    RAISERROR('Email Already exist.', 16, 1)
     return 
end


declare @MemID as int
select @memID=isnull(max(ID),0)+1 from members

INSERT INTO members (
id,
LoginName,
Password,
FirstName,
LastName,
signupDate,
Company,
Phone,
Email,
Address,
PostalCode,
State_Province,
City,
countryCode,
active,activationCode)
VALUES (
@Memid,
@LoginName,
@Password,
@FirstName,
@LastName,
@signupDate,
@Company,
@Phone,
@Email,
@Address,
@PostalCode,
@State_Province,
@City,
@countryCode,
@active,@activationCode)

if @@error <> 0 
set @ID=-1
else
set @id=@memID
当我运行这个页面signup.aspx,提供必需的字段并单击submit时,页面只是重新加载,数据库表并不反映新插入的记录

问题:

  • 如何捕获存储过程可能返回的错误消息
  • 请告知如何更改signup.aspx以便插入
  • 谢谢,
    Sid

    您正在接受数据库在
    btnSave\u单击事件处理程序中引发的所有异常。您应该没有
    Try/Catch
    块,或者对异常执行一些操作(比如记录它)-代码意味着您丢失了异常(正如您已经注意到的)

    至于更改代码以进行插入-首先找出异常是什么,这将告诉您错误是什么,并且可能会通知您(以及我们,如果您发布了错误)如何修复它。

    问题:

    1.如何捕获存储过程可能返回的错误消息

    问题是,我认为您可以在数据库中测试proc。你测试它通过,所以它是正确的

    2.请告知如何更改signup.aspx以便插入


    如果您确保创建的proc是正确的,那么您可以搜索如何从internet调用proc的信息

    您永远不会调用任何方法来实际插入新行!调用
    .DataBind()
    只会将数据源中的现有数据加载到“绑定”的UI元素中(如文本框、网格等)

    signup.aspx上的文本框等是如何连接到数据源的

    您需要:

    • 读取用户输入的值
    • 实际调用有问题的存储过程(直接或通过SqlDataSource)
    • 然后可能会重新绑定表单以显示新数据
     <asp:SqlDataSource runat="server" ID="dsAddMember" 
        ConnectionString="rmsdbuser"
        InsertCommandType="StoredProcedure" InsertCommand="Pro_members_Insert" 
        ProviderName="System.Data.SqlClient">
       <InsertParameters>
         <asp:ControlParameter ControlID="txtLoginName" Type="String" />
         <asp:ControlParameter ControlID="txtPassword" Type="String" />
         <asp:ControlParameter ControlID="txtEmail" Type="String" />
         <asp:ControlParameter ControlID="txtCompany" Type="String" />
         <asp:ControlParameter ControlID="txtFirstName" Type="String" />
         <asp:ControlParameter ControlID="txtLastName" Type="String" />
         <asp:ControlParameter ControlID="txtAddress" Type="String" />
         <asp:ControlParameter ControlID="txtCity" Type="String" />
         <asp:ControlParameter ControlID="ddlState" type="String" />
         <asp:ControlParameter ControlID="ddlcountryCode" Type="String" />
         <asp:ControlParameter ControlID="txtPostalCode" Type="String" />
         <asp:ControlParameter ControlID="txtPhoneNumber" Type="String" />
       </InsertParameters>
     </asp:SqlDataSource>
    
    Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
        Try
            dsAddMember.DataBind()
        Catch ex As Exception
    
        End Try
    End Sub