我正在運行此代碼,其中基本上我有一個存儲過程,將新行插入表member
。我已經發布了該方法的代碼從C#調用存儲過程,並在那裏我打電話是方法的代碼:存儲過程與數據適配器,拋出SerializationException
存儲過程:
[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.SerializationExcepti上:無法找到 集「數據層,版本= 1.0.0.0,文化=中立, 公鑰= 536d0c71bd79a82e」
難道有人知道是什麼問題嗎?
主要問題是:**爲什麼**你會編寫一個存儲過程在C#中插入數據行 - 這應該在T-SQL中 - 這就是T-SQL真正擅長的,以及T-SQL擅長於 –
您是否已將程序集「Datalayer」添加到項目的引用中,並在使用節中定義它? – webber2k6
@marc_s:用程序你可以檢查參數的約束和正確性,所以我認爲這是一個很好的方法。 – webber2k6