使用数据适配器存储过程,抛出SerializationException

时间:2012-05-15 07:51:55

标签: c# serialization stored-procedures data-access-layer dataadapter

我正在运行此代码,基本上我有一个存储过程,它将新行插入表member。我已经从C#发布了方法的代码来调用存储过程和我调用该方法的代码:

存储过程:

[AutoComplete(true)]
public void AddNewMember(Member cm)
{
   SqlCommand cmd = new SqlCommand();
   SqlDataAdapter da = new SqlDataAdapter();

   try
   {
       this.Connection.BeginTransaction();

       this.InitializeConnection();

       cmd = new SqlCommand("sp_addNewMember", this.Connection);
       cmd.Parameters.Add(new SqlParameter("@memberID", cm.MemberID));
       cmd.Parameters.Add(new SqlParameter("@userID", cm.UserID));
       cmd.Parameters.Add(new SqlParameter("@dateJoined", cm.DateJoined));
       cmd.Parameters.Add(new SqlParameter("@Duties", cm.Duties));

       cmd.CommandType = CommandType.StoredProcedure;

       da.InsertCommand = cmd;

       ContextUtil.SetComplete();
    }
    catch (Exception ex)
    {
        ContextUtil.SetAbort();
    }

调用方法:

DataLayer.Member cm = new DataLayer.Member();
cm.MemberID = Guid.NewGuid();
cm.UserID = new Guid(txtUserID.Text);
cm.DateJoined = Convert.ToDateTime(txtDateJoined.Text);
cm.Duties = txtDuties.Text;

DataLayer.AddMember acm = new DataLayer.AddMember();
acm.AddNewMember(cm); 

acm.AddNewMember()行引发的异常:

  

System.Runtime.Serialization.SerializationException:无法找到   assembly'DataLayer,Version = 1.0.0.0,Culture = neutral,   公钥= 536d0c71bd79a82e'

有人知道问题是什么吗?

2 个答案:

答案 0 :(得分:0)

您需要查看异常的InnerException以及异常的“Detail”。将代码剥离到仅插入数据部分。我不知道ContextUtil的作用。将数据保存到sql server不应该要求序列化。我认为这是函数中进行序列化的其他东西。

答案 1 :(得分:0)

在我看来,配置问题。 你的代码没什么帮助。

我猜DataLayer是你的DataLayer.dll中的某个类。 这个代码在哪里被调用?在Web服务上?你在哪里获得例外?在客户端应用程序?

如果是这样,那么您可能会遇到完全不同的异常,这只是将其发送到客户端应用程序的问题。