如何使用WCF服务将值插入SQL表?

时间:2017-01-04 11:02:45

标签: c# html wcf

在我的webform页面中,我需要使用WCF服务向SQL表插入一个值。当我单独执行WCF文件时,该值已被调用,然后我连接到webform页面,该值尚未插入。

网络代码

<div>
  <asp:TextBox value="" class="form-control" ID="Txtboxreg" runat="server" placeholder="Reg.No*"></asp:TextBox>
  <asp:TextBox value="" class="form-control" ID="txtdr" runat="server" placeholder="Doctor*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtSalutation" runat="server" placeholder="Salutation*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtPatientName" runat="server" placeholder="PatientName*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtAge" runat="server" placeholder="Age*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtdob" runat="server" placeholder="DOB*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtGender" runat="server" placeholder="Gender*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtRemarks" runat="server" placeholder="Remarks"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtAddress" runat="server" placeholder="Address*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtMobileNumber" runat="server" placeholder="MobileNumber*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtCity" runat="server" placeholder="City*"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtCorporateName" runat="server" placeholder="CorporateName"></asp:TextBox>
  <asp:TextBox class="form-control" ID="txtReferralDoctor" runat="server" placeholder="ReferralDoctor"></asp:TextBox>
</div>
<div>
  <asp:Button ID="bbtb" runat="server" Text="SAVE" OnClick="Button1_Click" Width="87px" />
</div>

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Text;
using System.Web.UI.WebControls;
using Wcftest.ServiceReference1;
using System.Web.UI.HtmlControls;
namespace Wcftest
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        ServiceReference1.Service1Client objServiceClientobjService = new ServiceReference1.Service1Client();
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            UserDetails userInfo = new UserDetails();
            userInfo.Reg_No = Txtboxreg.Text;
            userInfo.Doctor = txtdr.Text;
            userInfo.Salutation = txtSalutation.Text;
            userInfo.PatientName = txtPatientName.Text;
            userInfo.Age = txtAge.Text;
            userInfo.DOB = txtdob.Text;
            userInfo.Gender = txtGender.Text;
            userInfo.Address = txtAddress.Text;
            userInfo.MobileNumber = txtMobileNumber.Text;
            userInfo.City = txtCity.Text;
            userInfo.CorporateName = txtCorporateName.Text;
            userInfo.Remarks = txtRemarks.Text;
            userInfo.ReferralDoctor = txtReferralDoctor.Text;

            string result = objServiceClientobjService.InsertUserDetails(userInfo);
            LabelMessage.Text = result;
        }
    }
}

WCF代码

IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Wcftest
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        [OperationContract]
        string InsertUserDetails(UserDetails userInfo);
    }


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
    public class UserDetails
    {
        string qReg_No = string.Empty;
        string qDoctor = string.Empty;
        string qSalutation = string.Empty;
        string qPatientName = string.Empty;
        string qAge = string.Empty;
        string qDOB = string.Empty;
        string qGender = string.Empty;
        string qAddress = string.Empty;
        string qMobileNumber = string.Empty;
        string qCity = string.Empty;
        string qCorporateName = string.Empty;
        string qRemarks = string.Empty;
        string qReferralDoctor = string.Empty;

        [DataMember]
        public string Reg_No
        {
            get { return qReg_No; }
            set { qReg_No = value; }
        }
        [DataMember]
        public string Doctor
        {
            get { return qDoctor; }
            set { qDoctor = value; }
        }
        [DataMember]
        public string Salutation
        {
            get { return qSalutation; }
            set { qSalutation = value; }
        }
        [DataMember]
        public string PatientName
        {
            get { return qPatientName; }
            set { qPatientName = value; }
        }
        [DataMember]
        public string Age
        {
            get { return qAge; }
            set { qAge = value; }
        }
        [DataMember]
        public string DOB
        {
            get { return qDOB; }
            set { qDOB = value; }
        }
        [DataMember]
        public string Gender
        {
            get { return qGender; }
            set { qGender = value; }
        }
        [DataMember]
        public string Address
        {
            get { return qAddress; }
            set { qAddress = value; }
        }
        [DataMember]
        public string MobileNumber
        {
            get { return qMobileNumber; }
            set { qMobileNumber = value; }
        }
        [DataMember]
        public string City
        {
            get { return qCity; }
            set { qCity = value; }
        }
        [DataMember]
        public string CorporateName
        {
            get { return qCorporateName; }
            set { qCorporateName = value; }
        }
        [DataMember]
        public string Remarks
        {
            get { return qRemarks; }
            set { qRemarks = value; }
        }
        [DataMember]
        public string ReferralDoctor
        {
            get { return qReferralDoctor; }
            set { qReferralDoctor = value; }
        }
    }
}

Service1.svc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Wcftest
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
        public string InsertUserDetails(UserDetails userInfo)
        {
            string Message;
            SqlConnection con = new SqlConnection("Data Source=.;initial catalog=xyz;user id=123;password=123");
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into quickreg(qReg_No,qDoctor,qSalutation,qPatientName,qAge,qDOB,qGender,qAddress,qMobileNumber,qCity,qCorporateName,qRemarks,qReferralDoctor) values (@Reg_No,@Doctor,@Salutation,@PatientName,@Age,@DOB,@Gender,@Address,@MobileNumber,@City,@CorporateName,@Remarks,@ReferralDoctor)", con);
            cmd.Parameters.AddWithValue("@Reg_No", userInfo.Reg_No);
            cmd.Parameters.AddWithValue("@Doctor", userInfo.Doctor);
            cmd.Parameters.AddWithValue("@Salutation", userInfo.Salutation);
            cmd.Parameters.AddWithValue("@PatientName", userInfo.PatientName);
            cmd.Parameters.AddWithValue("@Age", userInfo.Age);
            cmd.Parameters.AddWithValue("@DOB", userInfo.DOB);
            cmd.Parameters.AddWithValue("@Gender", userInfo.Gender);
            cmd.Parameters.AddWithValue("@Address", userInfo.PatientName);
            cmd.Parameters.AddWithValue("@MobileNumber", userInfo.MobileNumber);
            cmd.Parameters.AddWithValue("@City", userInfo.City);
            cmd.Parameters.AddWithValue("@CorporateName", userInfo.CorporateName);
            cmd.Parameters.AddWithValue("@Remarks", userInfo.Remarks);
            cmd.Parameters.AddWithValue("@ReferralDoctor", userInfo.ReferralDoctor);

            int result = cmd.ExecuteNonQuery();
            if (result == 1)
            {
                Message = userInfo.Reg_No + " Details inserted successfully";
            }
            else
            {
                Message = userInfo.Reg_No + " Details not inserted successfully";
            }
            con.Close();
            return Message;
        }
    }
}

我已添加下面的屏幕截图,以便您理解。

Error Screen

1 个答案:

答案 0 :(得分:1)

在您的WCF服务中似乎没有问题。

检查您的网络表单配置文件。

以下链接将为您提供帮助 Example