110,534
社区成员
发帖
与我相关
我的任务
分享
//服务名称: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。
这个问题要怎么处理??