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、カルチャ = ニュートラル、PublicKeyToken = 536d0c71bd79a82e'

誰かが問題が何であるか知っていますか?

4

2 に答える 2

0

例外のInnerExceptionと、例外の「詳細」の内部を調べる必要があります。コードをストリップして、挿入データ部分のみにします。ContextUtilが何をするのかわかりません。SQLサーバーにデータを保存する場合、シリアル化は必要ありません。シリアル化を行うのは関数内の他のものだと思います。

于 2012-05-15T07:57:35.937 に答える
0

構成の問題のように見えます。あなたのコードはあまり役に立ちません。

DataLayerあなたのクラスは DataLayer.dll のどこかにあると思います。このコードはどこで呼び出されますか? ウェブサービスで?どこで例外を取得しますか? クライアントアプリケーションで?

その場合、まったく異なる例外が発生している可能性があり、これはクライアント アプリに送信する際の問題にすぎません。

于 2012-05-15T08:39:16.547 に答える