如何使用数据库C#为窗口窗体验证用户输入?
我是一个有c#和窗口形式的新手 我正在做一个web服务,并使用一个包含datagridview的表单,但是有很多问题 如何使用数据库验证用户输入,例如,当用户插入用户名时,尽管该用户名已存在于数据库中,我应提示用户输入另一个用户名 我在前一个线程中尝试过,我验证了只有用户才能输入0或1的特定列 是类似的吗 我需要一个web方法吗 p、 基本上,我想要的是在窗口表单中有一个文本框字段,用户将在其中输入用户名以将其添加到数据库中,但是,当他们单击“添加”按钮时,如果用户名已经存在,则会出现提示。如果没有,它将使用insertweb方法将其添加到数据库中 通过web方法检索数据。。。这意味着我必须使用一种网络方法来帮助我进行这项检查……但如何 我的web方法代码如何使用数据库C#为窗口窗体验证用户输入?,c#,winforms,web-services,visual-studio-2010,validation,C#,Winforms,Web Services,Visual Studio 2010,Validation,我是一个有c#和窗口形式的新手 我正在做一个web服务,并使用一个包含datagridview的表单,但是有很多问题 如何使用数据库验证用户输入,例如,当用户插入用户名时,尽管该用户名已存在于数据库中,我应提示用户输入另一个用户名 我在前一个线程中尝试过,我验证了只有用户才能输入0或1的特定列 是类似的吗 我需要一个web方法吗 p、 基本上,我想要的是在窗口表单中有一个文本框字段,用户将在其中输入用户名以将其添加到数据库中,但是,当他们单击“添加”按钮时,如果用户名已经存在,则会出现提示。如
[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);