2013-05-02 73 views
0

我想一次运行一个查询它检查用户名如果​​不是exsis然后它插入该值我想知道我将如何知道代码后面的代码,哪些查询它执行我的代码后面的代码是,如何检查哪个存储过程查询正在运行Sql Server Asp.Net?

public int CreateUser(string UserName,string Pwd) 
     { 
      cmd = new SqlCommand("CreateUser", conn); 
      cmd.CommandType = CommandType.StoredProcedure; 
      SqlParameter name = cmd.Parameters.Add("@UserName", SqlDbType.VarChar); 
      name.Value = UserName; 
      SqlParameter password = cmd.Parameters.Add("@Password", SqlDbType.VarChar); 
      password.Value = Pwd; 
      DataSet ds = new DataSet(); 
      adpt.SelectCommand = cmd; 
      adpt.Fill(ds); 
      conn.Close(); 
      return 0; 
     } 

我的存储过程,

ALTER PROCEDURE [dbo].[CreateUser] 
    -- Add the parameters for the stored procedure here 
    @UserName varchar(200) = NULL, 
    @Password varchar(200) = NULL 

AS 


IF NOT EXISTS(select * from[dbo].[User] where 
      [dbo].[User][email protected]) 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    BEGIN 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    insert into [dbo].[User] (User_Name,User_Password,User_Type) 
    values (@UserName,@Password,'User') 
END 

的希望您的建议提前

感谢

+0

嗨,我可以知道知道它的目的是什么吗?你想知道是否创建了新用户吗? – 2013-05-02 07:15:18

+0

它的目的是填充用户已创建或未创建的消息框 – 2013-05-02 07:16:12

+0

这是什么错误。你能列举一下吗? – 2013-05-02 07:25:07

回答

0

您可以在过程结束时执行SELECT @@ IDENTITY或SELECT SCOPE_IDENTITY()以返回插入的ID。如果该值为NULL,则不会插入任何记录。

0

尝试以下操作:

public int CreateUser(string UserName,string Pwd) 
    { 
     int intRowsinserted = 0; 

     cmd = new SqlCommand("CreateUser", conn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     SqlParameter name = cmd.Parameters.Add("@UserName", SqlDbType.VarChar); 
     name.Value = UserName; 
     SqlParameter password = cmd.Parameters.Add("@Password", SqlDbType.VarChar); 
     password.Value = Pwd; 

     cmd.Connection.Open(); 
     intRowsinserted = cmd.ExecuteNonQuery(); 
     cmd.Connection.Close(); 
     conn.Close(); 

     return intRowsinserted; 
    } 

首先,当我们想要返回的数据集adpt.Fill(DS)应该被使用。 ,cmd.ExecuteNonQuery()应该用于在表上执行插入,更新或删除操作,它将返回插入,更新或删除的行数。 第三,更多详细信息请参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx

请标记此答案有用,如果这可以解决您的问题。

相关问题