如何使用数据库C#为窗口窗体验证用户输入?

如何使用数据库C#为窗口窗体验证用户输入?,c#,winforms,web-services,visual-studio-2010,validation,C#,Winforms,Web Services,Visual Studio 2010,Validation,我是一个有c#和窗口形式的新手 我正在做一个web服务,并使用一个包含datagridview的表单,但是有很多问题 如何使用数据库验证用户输入,例如,当用户插入用户名时,尽管该用户名已存在于数据库中,我应提示用户输入另一个用户名 我在前一个线程中尝试过,我验证了只有用户才能输入0或1的特定列 是类似的吗 我需要一个web方法吗 p、 基本上,我想要的是在窗口表单中有一个文本框字段,用户将在其中输入用户名以将其添加到数据库中,但是,当他们单击“添加”按钮时,如果用户名已经存在,则会出现提示。如

我是一个有c#和窗口形式的新手

我正在做一个web服务,并使用一个包含datagridview的表单,但是有很多问题

如何使用数据库验证用户输入,例如,当用户插入用户名时,尽管该用户名已存在于数据库中,我应提示用户输入另一个用户名

我在前一个线程中尝试过,我验证了只有用户才能输入0或1的特定列

是类似的吗

我需要一个web方法吗

p、 基本上,我想要的是在窗口表单中有一个文本框字段,用户将在其中输入用户名以将其添加到数据库中,但是,当他们单击“添加”按钮时,如果用户名已经存在,则会出现提示。如果没有,它将使用insertweb方法将其添加到数据库中

通过web方法检索数据。。。这意味着我必须使用一种网络方法来帮助我进行这项检查……但如何

我的web方法代码

[WebMethod]  
public DataSet validateUserName()  
{   

    SqlConnection conn = 
        new SqlConnection("Data Source=.\\SQLEXPRESS;
            Initial Catalog=User;Integrated Security=True");   
    SqlCommand dbCommand = new SqlCommand();  
    dbCommand.CommandText = 
        @"SELECT COUNT(*) 
        FROM User 
        WHERE UserName=@UserName"; 
    // this textusername is from the window form  
    dbCommand.Connection = conn;  
    SqlDataAdapter da;   
    da = new SqlDataAdapter();   
    da.SelectCommand = dbCommand;

    DataSet ds = new DataSet();  
    da.Fill(ds);   
    return ds;

}
这是我的窗口窗体代码

private void btnAdd_Click(object sender, EventArgs e)

{
    WSBrandData validate = new WSBRandData();
    if (validate.validateUserName(txtUserName.Text))
    {
        MessageBox.Show("UserName is allocated");
        txtUserName.Text = "";
    }
    else
    {
       WSBrandData add = new WSBRandData();

        String[] names = null;

        names = Convert.ToString(DGVBrand.CurrentRow.Cells[1].Value).Split(';');
        String tagg = txtUserName.Text + ";";
        names[1] = tagg;

        DGVBrand.DataSource = add.addUserName(Convert.ToInt32(DGVBrand.CurrentRow.Cells[0].Value), names[0], names[1], Convert.ToInt32(DGVBrand.CurrentRow.Cells[3].Value));
        BindBrand();

    }




}

阅读。

如果您使用某种webmethod插入数据,那么必须有某种方法根据某个值提取数据。现在将用户名传递给此方法并搜索它,如果找到,请要求用户提供其他用户名

如果这不是你想要的,那么请再解释一下你的问题。

从这里开始:

[WebMethod]  
public Boolean UserNameExists(String userName)  
{   

    SqlConnection conn = 
        new SqlConnection("Data Source=.\\SQLEXPRESS;
            Initial Catalog=User;Integrated Security=True");   
    SqlCommand dbCommand = new SqlCommand();  
    dbCommand.CommandText = 
        @"SELECT COUNT(*) 
        FROM User 
        WHERE UserName='" + userName + "'";
    // this textusername is from the window form  
    dbCommand.Connection = conn;  

    conn.Open();

    int matchesCount = int.Parse(dbCommand.ExecuteScalar().ToString());

    conn.Close();  

    return matchesCount != 0;

}
在您的申请表中:

if (webReference.Type.UserNameExists(this.userNameTextBox.Text) )
{
    // Do something
}
else
{
    // Do something else
}

@阿克兰我不使用asp…我使用窗口表单…谢谢你的帮助…还有其他链接吗?@cutexxxbabies:你知道如何使用数据库吗??你的问题是什么?@cutexxxbabies来自你的问题:“我正在做一个网络服务…”@Akram。。。我正在使用窗口窗体…而不是asp…。然后我想根据数据库验证窗口窗体中的文本框…@cutexxxbabies:首先,为什么在这里使用Web服务?如果你真的需要使用web服务,那么你应该阅读我在回答中提供的教程。你的意思是我必须创建一个web方法只是为了验证…然后如何在窗口窗体中调用…我显示我的web代码method@Akram .... 如何使用web方法帮助我验证窗口窗体中的文本框…我不确定如何调用按钮…原因…用户输入用户名…然后单击添加按钮…按钮应使用web方法,该方法将与数据库检查是否存在类似情况data@Akram那么如何在按钮中调用此web方法来在窗口的文本框中验证输入form@Akram..int matchescall=int.Parse(dbCommand.ExecuteScalar());是下划线吗red@cutexxxbabies:
int matchescall=int.Parse(dbCommand.ExecuteScalar().ToString())是正确的吗statement@Akram…然后在我的窗口中…我应该如何称呼它…我知道代理的事情…但是…可以大致告诉我如何…因为…我在检查输入之前没有做过database@Akram所以我不需要使用代理…比如。。。。wsusername validate=新的wsusername();validate.UserNameExists(username.Text);