2013-05-02 46 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

請標記此答案有用,如果這可以解決您的問題。

相關問題