[英]Get list of IDs from Access Database using OleDbDataReader
将 Microsoft Access 数据库用于 Web 应用测验管理器,我有一个带有 ID 列的表,其中包含一个如下所示的 ID 列表:
ID Answer QuesDescription QuesAnswer QuestionNum
1 1 Example Example 1
3 3 Example Example 2
4 4 Example Example 3
6 1 Example Example 4
使用查询SELECT ID FROM (QuizName)
和OleDbCommand
我设法从数据库中获取 ID 值并存储到OleDbDataReader reader
中。 但我不知道如何从阅读器获取 ID 值并将它们存储为字符串列表。 有谁知道如何做到这一点?
我试过使用类似的东西
public List<string> GetIDValueFromQuestionNumber(string quizNumber)
{
try
{
string strSQL = string.Concat("SELECT count(ID) as RowCount FROM ", quizNumber);
List<string> resourceNames = new List<string>();
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand command = new OleDbCommand(strSQL, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
reader.Read();
int rowCount = (int)reader["RowCount"];
strSQL = string.Concat("SELECT ID FROM ", quizNumber);
command = new OleDbCommand(strSQL, connection);
using (reader = command.ExecuteReader())
{
while (reader.Read())
{
resourceNames.Add(" " + reader.GetString(0));
}
}
connection.Close();
for (int count = 0; count < rowCount; count++)
{
int value = (int)reader.GetValue(count);
resourceNames.Add(value.ToString());
}
}
return resourceNames;
}
catch (Exception e)
{
return null;
}
}
但没有运气。
我应该注意,这些表格的深度可能会有所不同。
我建议这种方法。
说一个表单 - DataGridView 来显示我们的数据。
并说一个列表框来显示您在该列表中建立的 id 列表
所以,这个表格:
和按钮点击代码:
private void button1_Click(object sender, EventArgs e)
{
// load up our data list with Hotels
string strSQL =
@"SELECT ID, FirstName, LastName, City, HotelName
FROM tblHotelsA ORDER BY HotelName";
DataTable rstData = MyRst(strSQL);
dataGridView1.DataSource = rstData;
// now build up a list of id in to string colleciton
List<string> MyIDList = new List<string>();
foreach (DataRow MyOneRow in rstData.Rows)
{
MyIDList.Add(MyOneRow["ID"].ToString());
}
// Lets set the id list to a listbox
listBox1.DataSource = MyIDList;
}
DataTable MyRst(string strSQL)
{
DataTable rstData = new DataTable();
using (OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.AccessDB))
{
using (OleDbCommand cmdSQL = new OleDbCommand(strSQL, conn))
{
conn.Open();
rstData.Load(cmdSQL.ExecuteReader());
}
}
return rstData;
}
现在我们得到/看到这个:
所以,拉桌子。 显示它,做任何事情。
然后使用 SAME 表,简单地循环每一行,获取 ID 并添加到您的列表中。
当然,人们可能会在上面的列表中隐藏“id”(只需使用编辑列添加列 - 只添加您想要的列)。 您仍然可以从数据源获取/抓取/使用任何列 - 不需要显示这些列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.