我是c#和窗口形式的新手
我正在做一个Web服务,并使用一个包含datagridview的表单,但是我遇到了很多问题。
如何使用数据库验证用户输入,例如,当用户插入用户名时,但是用户名已经存在于数据库中,我应该提示用户输入另一个用户名。
我之前在前一个帖子中尝试过,我验证只有用户的特定列可以输入0或1 ....
how to validate particular column cell field when editing 它有类似之处吗?
我需要一个网络方法吗?
基本上我想要的是在窗口形式中有一个文本框字段,用户将键入用户名将其添加到数据库,但是,当他们点击添加按钮时,如果用户名已经存在,会有提示。如果不是,它将使用insert 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();
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您使用某种web方法来插入数据,那么必须有一些方法来根据某些值提取数据。现在将UserName传递给此方法并搜索它,如果找到,则要求用户提供不同的UserName。
如果这不是你想要的,那么请再解释一下你的问题。
答案 2 :(得分:0)
从这里开始:
[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
}