2013-10-15 146 views
0

如何将用户从asp页面,字符串或整数中输入的值与数据库(Sql服务器)中某一列的值进行比较。将文本框的值与列的值进行比较

例如: 我在我的页面上有一个用于用户标识的文本框。 ,我想检查用户标识是否已经存在于表的用户标识列中。

+3

你问的是如何连接到数据库?你已经尝试了什么? – Tarec

+0

你问是否用户输入已经存在于数据库中?是的,我们需要看看迄今为止你已经尝试过了什么。 – gunr2171

+0

什么是您的文本框名称?你如何发送数据到服务器?通过GET方法或POST方法?你的SQL服务器名称是什么?你的表名是什么?你能不能展示一些你的代码? –

回答

1

您可以调用一个存储过程,它将检查数据库中的所有记录,并将为您的用户返回某种类型的消息,我在工作中也有类似的情况,并使用以下代码来执行此类操作

CREATE Procedure usp_IsertNewID 
@StableID   INT = NULL OUTPUT, 
@ReturnCode   int = NULL OUTPUT, 
@ReturnMessage  nvarchar(100) = NULL OUTPUT 
AS 
BEGIN 
    SET NOCOUNT ON; 
    BEGIN TRY 

      IF @StableID IS NULL 
      RAISERROR('Validation Failed: User ID cannot be null', 16,1) 

      IF EXISTS (SELECT UserID from dem.TableName 
         WHERE UserID = @UserID) 
       RAISERROR('Validation Failed: User ID already Exists',16,1) 

     BEGIN TRANSACTION 
      INSERT INTO TableName(UserID) 
      VALUES (@UserID) 

      COMMIT TRANSACTION 
     SELECT @ReturnCode = 0 , @ReturnMessage = 'Sucess! New Stable Details has added.' 
     SELECT @StableID = SCOPE_IDENTITY() 
    END TRY 

    BEGIN CATCH 
     IF (@@TRANCOUNT > 0) 
     ROLLBACK TRAN 

     SELECT @ReturnCode = ERROR_NUMBER(), @ReturnMessage = ERROR_MESSAGE() 

      SELECT @ReturnCode AS ReturnCode, @ReturnMessage AS ReturnMessage, 
       ERROR_LINE() AS ErrorLine, 
       ERROR_SEVERITY() AS ErrorSeverity, 
       ERROR_STATE() AS ErrorState 
    END CATCH 

    SET NOCOUNT OFF; 
END 

GO 
+0

你可以进一步调整以符合你的要求,我希望这会让你在正确的方向。您也可以做类似的事情,而不是让用户插入您创建的ID并将您的自我标识并发回给用户,从最终用户处获取所有其他信息并自行创建ID,并更好地控制数据库的管理。 –

1

好。你说过你使用SqlCommand类。

SqlDataAdapter dap = new SqlDataAdapter(); 
DataTable tbl; 
cmd.CommandText = "SELECT * FROM YourTable WHERE [user id]='@a'"; 
cmd.Parameters.AddWithValue("@a", YourTextBox.Text); 
dap.SelectCommand = cmd; 
dap.Fill(tbl); 
if(tbl.Rows.Count > 0) 
    //user id is already exist 
+0

感谢队友,它工作:) – Sunny

相关问题