私はデータベースに2つのテーブルを持ち、ビジュアルスタジオ(データセット)でデータモデルを使用し、2つのクラスを使用してこれらの2つのテーブルのメソッドとプロパティを格納します。テーブルアダプターはシリアル化可能とマークされていませんか?
私はこのエラーを取得するstateviewにリストを追加しようとすると、リストの中に何らかの理由でWebフォームから収集した情報を格納したい:
タイプ「『『TableAdapters 『』 TableAdapterのを』。』。 'Assembly' "、バージョン= 1.0.0.0、Culture =ニュートラル、PublicKeyToken = null 'はシリアル化可能とマークされていません。
私は既にクラスをシリアライズ可能としてマークしましたが、今はテーブルアダプターですか?ここに私のコードは次のとおりです。
[System.ComponentModel.DataObject]
[Serializable]
public class Example
{
int _example1 = new int();
string _example2;
string _example3;
decimal _example4 = new decimal();
public int example1
{
get { return _example1; }
set { _example1 = value; }
}
public string example2
{
get { return _example2; }
set { _example2 = value; }
}
public string example3
{
get { return _example3; }
set { _example3 = value; }
}
public decimal example4
{
get { return _example4; }
set { _example4 = value; }
}
private tblTestTableAdapter _testAdapter = null;
protected tblTestTableAdapter Adapter
{
get
{
if (_testAdapter == null)
_testAdapter = new tblTestTableAdapter();
return _testAdapter;
}
}
Webフォーム:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
else
{
example = (List<Example>)ViewState["Examples"];
}
}
private List<Example> example;
public List<Example> GetExample()
{
return example;
}
protected void btnRow_Click(object sender, EventArgs e)
{
example = new List<Example>();
Example e = new Example();
e.example1 = Convert.ToInt32(txtE1.Text);
c.example2 = txtE2.Text;
c.example3 = txtE3.Text;
c.example4 = Convert.ToDecimal(txtE4.Text);
example.Add(e);
ViewState["Examples"] = example;
btnRow.Enabled = false;
}
問題は何ですか?
あなたはこの詳細を拡張することができますか? – user603605
@ user603605 - ビットをデモするためのコメント付きのコードスニペットを追加しました –
どのようにして「テーブルアダプターを公開するか」は、情報が収集されるテキストボックスを持っています。ユーザーがリストに追加を続行するか、続行するかを選択できます。私はテーブルアタッチメントが必要なので、最後に私のデータベースにリストを挿入することができます。 – user603605