如果存在主键,请在运行时检查

时间:2018-04-28 08:20:25

标签: asp.net sql-server

我在asp.net工作。我有一个名为Maybe的文本框,另一个文本框是Maybe。现在我想要的是当用户在formidtxt中输入表单ID时,它应该同时开始检查是否已经存在具有相同ID的表单ID,如果表单ID已经存在于数据库中然后colortxt文本框的颜色应该变为红色,否则它应该是绿色。

我知道可以通过在文本框中使用事件来完成,但无法理解工作。我的数据库在SQL Server 2008中。

1 个答案:

答案 0 :(得分:1)

试试这个C#代码;

private void Page_Load(object sender, EventArgs e)
{
    // formidtxt is the name of the textbox
    this.formidtxt.TextChanged += FormIDTextBox_TextChanged;
    formidtxt.AutoPostBack = true;
}

请注意,此方法是在Page_Load方法中编写的。

TextChanged是一个事件,它发生在TextBox中修改文本时。 在这种情况下,当formidtxt(文本框)文本发生更改时,它将调用FormIDTextBox_TextChanged方法。

private void FormIDTextBox_TextChanged(object sender, EventArgs e)
{
    int x = 0;

    // convert textbox text (string) to int
    Int32.TryParse(formidtxt.Text, out x);

    // call IsIDAvailableDAO method
    // x is the converted int value
    if (IsIDAvailableDAO(x))
    {
        colortxt.BackColor = System.Drawing.Color.Red;
    }
    else
    {
        colortxt.BackColor = System.Drawing.Color.Green;
    }
}

此方法将从文本框(formidtxt)获取文本,并将其作为参数发送到IsIDAvailableDAO方法。

使用IsIDAvailableDAO方法,我们可以检查数据库中是否有ID。如果可用,则该方法将返回TRUE布尔值。如果没有,它将返回False布尔值。

根据该布尔值,您可以根据需要更改colortxt文本框的颜色或执行其他操作。

private Boolean IsIDAvailableDAO(int id)
{
    Boolean output;

    using (SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Testing;Integrated Security=True"))
    {
        string query = @"SELECT CASE WHEN COUNT(ID) >= 1 THEN CAST( 1 as BIT ) ELSE CAST( 0 as BIT )  
                        END As IsAvailable
                        FROM TableName
                        WHERE ID = @ID";

        SqlCommand cmd = new SqlCommand(query, myConnection);
        cmd.Parameters.AddWithValue("@ID", id);
        myConnection.Open();

        output = (Boolean)cmd.ExecuteScalar();

        myConnection.Close();
    }

    return output;
}

在此方法(IsIDAvailableDAO)中,请根据需要更改查询(TableNameID等)和connectionstring

您还必须添加此命名空间:using System.Data.SqlClient;

https://www.connectionstrings.com/sql-server-2008/
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/namespaces/using-namespaces