0

我正在运行这段代码,基本上我有一个存储过程,它将新行插入表中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:找不到程序集“DataLayer,版本=1.0.0.0,Culture=neutral,PublicKeyToken=536d0c71bd79a82e”

请问有人知道是什么问题吗?

4

2 回答 2

0

您需要查看异常的 InnerException 以及异常的“详细信息”。将代码剥离到仅插入数据部分。我不知道 ContextUtil 做什么。将数据保存到 sql server 不需要序列化。我认为执行序列化是函数中的其他内容。

于 2012-05-15T07:57:35.937 回答
0

在我看来,它像配置问题。您的代码没有多大帮助。

我猜DataLayer是你的类在你的 DataLayer.dll 中的某个地方。这段代码在哪里调用?在网络服务上?你从哪里得到你的例外?在客户端应用程序上?

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

于 2012-05-15T08:39:16.547 回答