WCF 服务类
//服务名称:ServiceReference1
//服务端:Service1.svc里面的代码如下
string connectionString = "Data Source=WIN-80OAKU6S6L2;Initial Catalog=lyhjxc;User ID=sa;PassWord=123456;";
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <param name="cmdParms">参数</param>
/// <returns>影响的记录数</returns>
public int ExecuteSql1(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
cmd.Parameters.AddRange(cmdParms);
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="conn">SQL连接</param>
/// <param name="trans">事物</param>
/// <param name="cmdText">SQL语句</param>
/// <param name="cmdParms">参数</param>
private void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
{
try
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = CommandType.Text;//cmdType;
if (cmdParms != null)
{
foreach (SqlParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
}
Hashtable SQLStringList = new Hashtable();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw ex;
}
}
//IService1.cs
[OperationContract]
int ExecuteSql1(string SQLString, params SqlParameter[] cmdParms);
//客户端调用ExecuteSql1方法:
ServiceReference1.Service1Client FF= new ServiceReference1.Service1Client();
FF.ExecuteSql1(“select * from user where ID=@ID”,cmdParms)
执行后报如下错误:
尝试对参数 http://tempuri.org/ 进行序列化时出错: cmdParms。InnerException 消息是“不应为数据协定名称为“string:http://www.w3.org/2001/XMLSchema”的类型“System.Data.SqlTypes.SqlString”。请考虑使用 DataContractResolver,或将任何未知类型以静态方式添加到已知类型的列表。例如,可以使用 KnownTypeAttribute 特性,或者将未知类型添加到传递给 DataContractSerializer 的已知类型列表。”。有关详细信息,请参见 InnerException。
这个问题要怎么处理??
...全文
相关推荐
一个简单的WCF服务端程序
这通常包含一个服务接口定义和一个实现该接口的服务类。在WCF中,服务接口定义了客户端可以调用的方法,这些方法暴露了服务的功能。
WCF服务学习WCF服务学习
本文介绍WCF服务体系结构及核心组件,包括服务类、宿主和端点,重点解析地址、绑定和契约三要素,并阐述服务契约定义操作的方法,帮助开发者掌握基于WCF的分布式通信应用开发基本技能。
WCF入门(WCF原理,开发服务端,客户端)
**服务类(Service Class)**: 服务类是实现服务契约的具体类,通常会包含服务操作的实现代码。
wcf服务端配置
一个WCF服务由服务契约(Service Contract)、实现契约的服务类(Service Class)、绑定(Binding)和终结点(Endpoint)组成。
WCF动态加载RestFul服务的DLL,纯代码实现配置
创建ServiceHost:使用ServiceHost类实例化WCF服务,传入服务类型和服务实例。


