我正在运行此代码,基本上我有一个存储过程,它将新行插入表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'
有人知道问题是什么吗?
答案 0 :(得分:0)
您需要查看异常的InnerException以及异常的“Detail”。将代码剥离到仅插入数据部分。我不知道ContextUtil的作用。将数据保存到sql server不应该要求序列化。我认为这是函数中进行序列化的其他东西。
答案 1 :(得分:0)
在我看来,配置问题。 你的代码没什么帮助。
我猜DataLayer
是你的DataLayer.dll中的某个类。
这个代码在哪里被调用?在Web服务上?你在哪里获得例外?在客户端应用程序?
如果是这样,那么您可能会遇到完全不同的异常,这只是将其发送到客户端应用程序的问题。