質問

現在、私はこれをやっている...

object s = new object();
s = mydatarow["mycolumn"];

私は何をしたいことはある...

DataRow r = null;
r = mydatarow["mycolumn"];

と私はのDataRowにオブジェクトからひそかすることはできませんエラーことわざを取得します。

これを行うには良い方法はありますか?

役に立ちましたか?

解決

あなたが現在何をやっている...

object s = new object();
s = mydatarow["mycolumn"];

これは最初の行は、新しいオブジェクトを作成し、2行目は、そのオブジェクトを捨てとのDataRowで「MYCOLUMN」列の値に置き換えているので、良いアイデアではありません。これは、実際にそれが正当な理由なく、ガベージコレクタのための余分な作業を作成することを除いて、あまりを傷つけることはありません。その代わりに、あなたがこれを行う必要があります:

object s = mydatarow["mycolumn"];

あなたは「MYCOLUMNは、」文字列値が含まれていることを知ることが起こる場合は、あなたの代わりにこれを行うことができます:

string s = (string)mydatarow["mycolumn"];

同様に、 "MYCOLUMNは" 整数列であれば...

int x = (int)mydatarow["mycolumn"];

いかなる状況下では、それは単にどんな意味がない、とフレームワークは、あなたのDataRowで「MYCOLUMN」の値は、実際には、ないことを別のDataRowをあなたに伝えるのに十分いいですので、あなたは、次の手順を実行する必要があります。

DataRow r = null;
r = mydatarow["mycolumn"];

他のヒント

あなたは間違って何かをするように

に見えます。

DataRow r = null;
r = mydatarow["mycolumn"];

mydatarowはDataRowをそのものです。あなたが特定の列に参照するときには、表の「セル」を取得します。 (データセットは基本的に緩やかに型付けされているので、それは、オブジェクト型を持つ)が、あなたがたDataRowにセルを割り当てるようにしてください。

それを得たか。

...表のデータテーブル(複数行)、データROW(複数のフィールド/列)、および個々の列細胞自体の三つがあります。

DataTable oTbl = ResultSetFromYourQuery();
DataRow oDR = oTbl.Rows[0];  // Rows[0] is first row in a result table (zero-based)
String ColumnValue = oDR["YourColumnName"];

あなたはこれを試すことができます:

DataRow r = null;
r = (DataRow) mydatarow["mycolumn"]; //*

これが動作することを、そう、しかし、理論的には可能です。 通常、私は、(私は//*を追加しました)ブレークポイントに固執mydatarow["mycolumn"]を見て、およびVisual Studioは、それが実際に(決定するために他のものの間)でどのようなタイプを教えていますこのようなものとのトラブルを抱えているときます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top