c# - Consuming WCF service in Windows Forms application -
i consuming wcf service in windows forms application. wcf service has 2 classes called fulltimeemployee
, parttimeemployee
. want register users based on employee type. user type come emu. when click submit button, message:
please select employee type
as shown in screen shot.
here code form class..
[knowntype(typeof(fulltimeemployee))] [knowntype(typeof(parttimeemployee))] [datacontract(namespace = "http://pragimtech.com/employee")] public class employee { private int _id; private string _name; private string _gender; private datetime _dateofbirth; [datamember(order = 1)] public int id { { return _id; } set { _id = value; } } [datamember(order = 2)] public string name { { return _name; } set { _name = value; } } [datamember(order = 3)] public string gender { { return _gender; } set { _gender = value; } } [datamember(order = 4)] public datetime dateofbirth { { return _dateofbirth; } set { _dateofbirth = value; } } [datamember(order = 5)] public employeetype type { get; set; } } public enum employeetype { fulltimeemployee = 1, parttimeemployee = 2 } }
here wcf service code register employee based on type:
public void saveemployee(employee employee) { string cs = configurationmanager.connectionstrings["dbcs"].connectionstring; using (sqlconnection con = new sqlconnection(cs)) { sqlcommand cmd = new sqlcommand("spsaveemployee", con); cmd.commandtype = commandtype.storedprocedure; sqlparameter parameterid = new sqlparameter { parametername = "@id", value = employee.id }; cmd.parameters.add(parameterid); sqlparameter parametername = new sqlparameter { parametername = "@name", value = employee.name }; cmd.parameters.add(parametername); sqlparameter parametergender = new sqlparameter { parametername = "@gender", value = employee.gender }; cmd.parameters.add(parametergender); sqlparameter parameterdateofbirth = new sqlparameter { parametername = "@dateofbirth", value = employee.dateofbirth }; cmd.parameters.add(parameterdateofbirth); sqlparameter parameteremployeetype = new sqlparameter { parametername = "@employeetype", value = employee.type }; cmd.parameters.add(parameteremployeetype); if (employee.gettype() == typeof(fulltimeemployee)) { sqlparameter parameterannualsalary = new sqlparameter { parametername = "@annualsalary", value = ((fulltimeemployee)employee).annualsalary }; cmd.parameters.add(parameterannualsalary); } else { sqlparameter parameterhourlypay = new sqlparameter { parametername = "@hourlypay", value = ((parttimeemployee)employee).hourlypay, }; cmd.parameters.add(parameterhourlypay); sqlparameter parameterhoursworked = new sqlparameter { parametername = "@hoursworked", value = ((parttimeemployee)employee).hoursworked }; cmd.parameters.add(parameterhoursworked); } con.open(); cmd.executenonquery(); } }
here windows form application code:
private void button1_click(object sender, eventargs e) { myservice.halifaxserviceclient myservice = new myservice.halifaxserviceclient("nettcpbinding_ihalifaxservice"); myservice.employee employee = null; if (((myservice.employeetype)convert.toint32(combobox2.selectedvalue)) == myservice.employeetype.fulltimeemployee) { employee = new myservice.fulltimeemployee { id = convert.toint32(textbox1.text), name = txtname.text, gender = combobox1.text, dateofbirth = convert.todatetime(txtdateofbirth.text), type = myservice.employeetype.fulltimeemployee, annualsalary = convert.toint32(txtannualsalary.text), }; myservice.saveemployee(employee); label8.text = "employee saved"; } else if (((myservice.employeetype)convert.toint32(combobox2.selectedvalue)) == myservice.employeetype.parttimeemployee) { employee = new myservice.parttimeemployee { id = convert.toint32(textbox1.text), name = txtname.text, gender = combobox1.text, dateofbirth = convert.todatetime(txtdateofbirth.text), type = myservice.employeetype.parttimeemployee, hourlypay = convert.toint32(txthourlypay.text), hoursworked = convert.toint32(txthoursworked.text), }; myservice.saveemployee(employee); label8.text = "employee saved"; } else { label8.text = "please select employee type"; } } private void button2_click(object sender, eventargs e) { this.close(); } private void combobox2_selectedindexchanged(object sender, eventargs e) { if (combobox2.text == "fulltimeemployee") { txthourlypay.visible = false; txthoursworked.visible = false; label6.visible = false; label7.visible = false; } else if (combobox2.text == "parttimeemployee") { txthourlypay.visible = true; txthoursworked.visible = true; label6.visible = true; label7.visible = true; } }
when click submit button shows
please select employee type
and not insert new employee sql server database..
here screenshot of output:
Comments
Post a Comment