1

複数の列を持つテーブルを持つ MS Access データベースがあります。ボタンをクリックすると、データベースの 1 つの列から文字列データの行を取得し、それをリッチ テキスト ボックスに表示したいと考えています。次のコードを作成しました。

 public static string DisplayListOfTeams()
    {
        //create a data table object to hold data retrieved from DB
        DataSet ds = new DataSet();

        //set SQL query to string variable
        String sqlQuery = "SELECT * FROM Team";

        //instantiate new OleDbDataAdapter object
        OleDbDataAdapter adpTeams = new OleDbDataAdapter(sqlQuery, aConnection);

        //add data in DB to the dataset object/table
        adpTeams.Fill(ds, "TeamTable");            

        string myValue;

        if (ds.Tables["TeamTable"].Rows.Count > 0)
        {
            //You must cast the value because it is an object
            myValue = (string)ds.Tables["TeamTable"].Rows[0][0];
        }
        else
        {
            myValue = "No Data found";
        }
        return myValue;
    }

 richTextBox1.Text = TeamsDA.DisplayListOfTeams();

次の行で、「型 'System.Int32' のオブジェクトを型 'System.String' にキャストできません」というエラーが表示されます。

myValue = (string)ds.Tables["TeamTable"].Rows[0][0];

何が間違っているのか、やろうとしていることをどうやってやればいいのかわからない。

4

2 に答える 2

3

1 つ (2 つ?) 語: ToString

于 2012-04-11T21:41:06.467 に答える
1

キャストしないでください...代わりに ToString() を使用してください。

キャストした場合、戻り値は変換されず、の型としてのみ送信されます。ToString() を使用すると、可能であれば正しい方法に変換されます。

私が間違っている場合は、私を修正してください。しかし、ToString() が機能すると確信しています。

編集 :

大文字と小文字を区別するエラーを修正しました。digEmAll に感謝

于 2012-04-11T21:43:30.797 に答える