トップ回答者
LINQ to SQLにおいて 動的にフィールドにアクセスするには

質問
-
SqlDataReaderを利用しているときには
string Tm_command;
SqlConnection Sql_Cn = new SqlConnection();
SqlCommand Sql_Cmd = Sql_Cn.CreateCommand();
SqlDataReader Sql_Dr = null;Tm_command = "SQL文";
Sql_Cn.Open();
Sql_Cmd.CommandText = Tm_command;
Sql_Dr = Sql_Cmd.ExecuteReader();String aaa = Sql_Dr["フィールド名称"].ToString(); <------フィールド名称を文字列で動的にアクセス
LINQ to SQLで同じようにフィールド名称を文字列で動的にアクセスするにはどのような方法があるでしょうか?
初歩的な事と思いますがご指導お願いします。
すべての返信
-
説明不足で申し訳ございません。
書いているコードは下のような単純なコードです。
var db = new DataClasses1DataContext(ConnectionString);
db.Log = Console.Out;
var q = from s in db.T_BANK
where s.G_S_NAME.Contains("平成支店")
select s;foreach (var s in q)
{//これ以下の部分---------------------------------------------
a[0] = s.Field1;a[1] = s.Field2;
a[2] = s.Field3;
a[3] = s.Field4;
a[4] = s.Field5;
a[5] = s.Field6;
/------------------------------------------
}SqlDataReaderを利用しているときには
以下のようにループして取得しておりました。
for (int i = 0; i <= 5; i++)
{a[ i ] = Sql_Dr["Field" + i.ToString()].ToString();
}
テーブルのフィールド名称を連続しているような名称で定義している場合にコーディングが楽でしたので文字列で動的にアクセスしたいと思いました。
連続しているフィールドが多いほど思います。
本当に説明が下手ですけど伝わりましたでしょうか?
リフレクションは使用したことが有りませんので調べようと思います。