我用 WCF 服务构建了一个服务器:IService.cs 和 Service.cs。文件的代码如下:
服务.cs
[ServiceContract]
public interface ITaiKhoanNguoiChoi
{
[OperationContract]
void InsertStaff(string username);
}
服务.cs
public void InserStaff(string username)
{
try
{
conn = new SqlConnection(strConnect);
conn.Open();
cmd = new SqlCommand("insert into STAFF values('" + username+ "')", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
catch
{
}
}
好的,这就是我构建的所有服务代码。然后,我将在我的客户端调用服务,代码如下所示:
ServiceClient proxy = new ServiceClient();
private void btnInsert_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
proxy.InsertStaffCompleted += new EventHandler<AsyncCompletedEventArgs>(InsertStaffMethod);
proxy.InsertStaffAsync("John");
}
void InsertStaffMethod(object o, AsyncCompletedEventArgs e)
{
MessageBox.Show("YAY!");
}
现在,在我第一次单击 btnInsert 时,“YAY”将显示 1 次。
第二次单击 btnInsert 时,“YAY”将显示 2 次。
……
在我第 N 次单击 btnInsert 时,“YAY”将显示 N 次。
那是我的问题。我不明白为什么我只点击1次,服务器的InsertStaff方法会被调用很多次。
你能为我解释一下吗?以及如何解决问题。我只希望 InsertStaff 方法仅在单击 btnInsert 1 次时执行。