1

我有一个 MS Access 数据库,它有一个包含几列的表。当我单击一个按钮时,我想从数据库的一列中获取字符串数据行并将其显示在富文本框中。我创建了以下代码:

 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

一(两个?)字:ToString

于 2012-04-11T21:41:06.467 回答
1

不要投射它......改用 ToString() 。

如果你强制转换它不会转换返回,它只会尝试作为类型发送。如果您使用 ToString(),如果可能,它将转换为正确的方式。

如果我错了,请纠正我。但我确信 ToString() 会起作用。

编辑 :

修复了区分大小写的错误。感谢 digEmAll

于 2012-04-11T21:43:30.797 回答