System.Data.DataRowViewc#
System.Data.DataRowView c#
每当我 运行 返回此代码时 - System.Data.DataRowView。
我不明白这是什么问题。我试图寻找 here 的解决方案,但我无法理解(我是编程新手..)。
public void loadLabels()
{
using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbString))
{
connection.Open();
String strDa = "SELECT Lessons.number, Lessons.type, Lessons.datel, Lessons.hour , Lessons.money, Lessons.note FROM Lessons";
using (OleDbDataAdapter da = new OleDbDataAdapter(strDa, connection))
{
DataTable t = new DataTable();
da.Fill(t);
listBox1.DataSource = t;
}
}
}
ListBox 控件获取 DataTable 的每个元素并为其 Items 属性 构建一个元素。但是当它添加一个元素时,它不知道应该在添加到集合的每个字符串中显示哪个数据库字段。在这种情况下,它使用用于添加元素的对象的 ToString 方法。在您的例子中是 DataRowView class 的 ToString 方法。但是 DataRowView class 没有实现任何特定的 ToString() 方法,因此调用了基本实现 (object.ToString()) 而这个 returns 只是 class 的名称.
您可以使用属性
更改此行为
listBox1.DataSource = t;
listBox1.DisplayMember = "datel";
listBox1.ValueMember = "number";
这将只显示您查询的一列。如果您想显示多列,您有两种选择。放弃 ListBox 控件并使用 DataGridView(本网站中有很多示例,使用搜索功能)或在查询中创建一个别名以将多个字段连接在一起[=13=]
String strDa = @"SELECT Lessons.number, Lessons.type, Lessons.datel,
Lessons.hour, Lessons.money, Lessons.note,
Lessons.datel & ' ' & Lessons.hour & ' - ' & Lessons.money as LessonDetails
FROM Lessons";
....
listBox1.DisplayMember = "LessonDetails";
这有点笨拙,显示效果不是很整洁。我建议为此任务使用 DataGridView
每当我 运行 返回此代码时 - System.Data.DataRowView。 我不明白这是什么问题。我试图寻找 here 的解决方案,但我无法理解(我是编程新手..)。
public void loadLabels()
{
using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbString))
{
connection.Open();
String strDa = "SELECT Lessons.number, Lessons.type, Lessons.datel, Lessons.hour , Lessons.money, Lessons.note FROM Lessons";
using (OleDbDataAdapter da = new OleDbDataAdapter(strDa, connection))
{
DataTable t = new DataTable();
da.Fill(t);
listBox1.DataSource = t;
}
}
}
ListBox 控件获取 DataTable 的每个元素并为其 Items 属性 构建一个元素。但是当它添加一个元素时,它不知道应该在添加到集合的每个字符串中显示哪个数据库字段。在这种情况下,它使用用于添加元素的对象的 ToString 方法。在您的例子中是 DataRowView class 的 ToString 方法。但是 DataRowView class 没有实现任何特定的 ToString() 方法,因此调用了基本实现 (object.ToString()) 而这个 returns 只是 class 的名称.
您可以使用属性
更改此行为 listBox1.DataSource = t;
listBox1.DisplayMember = "datel";
listBox1.ValueMember = "number";
这将只显示您查询的一列。如果您想显示多列,您有两种选择。放弃 ListBox 控件并使用 DataGridView(本网站中有很多示例,使用搜索功能)或在查询中创建一个别名以将多个字段连接在一起[=13=]
String strDa = @"SELECT Lessons.number, Lessons.type, Lessons.datel,
Lessons.hour, Lessons.money, Lessons.note,
Lessons.datel & ' ' & Lessons.hour & ' - ' & Lessons.money as LessonDetails
FROM Lessons";
....
listBox1.DisplayMember = "LessonDetails";
这有点笨拙,显示效果不是很整洁。我建议为此任务使用 DataGridView