我有一个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];
我不确定我做错了什么或者如何去做我想做的事。
答案 0 :(得分:3)
一个(两个?)单词(s?):ToString
答案 1 :(得分:1)
不要施放它......改为使用ToString()。
如果你施放它不会转换返回,它只会尝试发送类型。如果你使用ToString(),它将转换为正确的方式,如果可能的话。
如果我错了,请纠正我。但我确信ToString()会起作用。
编辑:
修复了区分大小写的错误。感谢digEmAll