1

私のC#ASP.Netプロジェクトでは、xsdデータセットを使用してデータベースにリンクしています。強く型付けされたデータテーブルから単一の行を返す関数を作成したいのですが、C#でこれを行うのが少し困難になっています。私は以前、VB.Netで次のコードを使用してこれを正常に実行しました。

Public Function dr() As DataSet1.UsersRow
    Dim ta As New DataSet1TableAdapters.UsersTableAdapter
    Dim dt As DataSet1.UsersDataTable = ta.GetData
    Return dt.Rows(0)
End Function

私のC#バージョンのコードは次のとおりです。

public DataSet1.UsersRow dr()
{
    DataSet1TableAdapters.UsersTableAdapter ta = new DataSet1TableAdapters.UsersTableAdapter();
    DataSet1.UsersDataTable dt = ta.GetData;
    return dt.Rows(0);
}

タイプ「System.Data.DataRow」を「MyProject.DataSet1.UsersRow」に暗黙的に変換できないというエラーが表示されます。明示的な変換が存在します(キャストがありませんか?)

強く入力された行をC#で返すにはどうすればよいですか?

4

3 に答える 3

4

を使用して強く型付けすることができるはずです

dt[0];

于 2012-10-28T21:23:21.880 に答える
2

解決策は、私が返したときにRowsアイテムを明示的に変換することでした。

public DataSet1.UsersRow dr()
{
    DataSet1TableAdapters.UsersTableAdapter ta = new DataSet1TableAdapters.UsersTableAdapter();
    DataSet1.UsersDataTable dt = ta.GetData();
    return (DataSet1.UsersRow)dt.Rows(0);
}
于 2012-10-28T20:47:33.017 に答える
0

より効率的な解決策は、SELECTTOP1の行に沿ってテーブルアダプタにクエリを追加することです。FROMユーザー(または、より一般的には、必要な行を返すためにWHERE句を追加します)。これにより、1つの行を取得するためだけにテーブル全体をプルバックする必要がなくなります。

于 2013-01-05T20:32:35.680 に答える