我已经为学校编程了几个月了,这是第一次使用数据库使用c#。我遇到的问题是我想从访问数据库中获取只能使用查询中的查询检索的数据,之后我想将这些数据放入列表框中
我通过在互联网上搜索获得了数据库代码并且到目前为止没有遇到任何问题(但可能是错误的并且是问题的错误)但是每当我尝试执行代码时都有一些东西查询错了。列表框中没有显示任何内容。我可能犯了一些愚蠢的错误
数据库包括: Behandelingen:身份证,BehandelingID,Behandeling,Bevoegdheid Patiënt-Behandeling:ID,PersoonID,BehandelingID
格式:OleDbConnection connection = new OleDbConnection();
在尝试之前:listBox1.Items.Clear();
try
{ OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string q = "select BehandelingID from [Behandelingen] where BehandelingID = (select BehandelingID from [Patiënt-Behandeling] where PersoonID = '" + textBoxUsername.Text + "')";
command.CommandText = q;
connection.Open();
reader = command.ExecuteReader();
if (reader.HasRows)
{ while (reader.Read())
{
listBox1.Items.Add(reader["Behandeling"].ToString());
}
}
reader.Close();
connection.Close();
}
catch (Exception a)
{
connection.Close();
MessageBox.Show(a.Message.ToString());
}
答案 0 :(得分:0)
你想获得Behandeling值,但是你只选择BehandelingID,选择命令必须是这样的:
试 {OleDbCommand command = new OleDbCommand(); command.Connection = connection; string q =“select BehandelingID,Behandeling来自[Behandelingen] BehandelingID =(从[Patiënt-Behandeling]选择BehandelingID,其中PersoonID ='”+ textBoxUsername.Text +“')”;
command.CommandText = q;
connection.Open();
reader = command.ExecuteReader();
if (reader.HasRows)
{ while (reader.Read())
{
listBox1.Items.Add(reader["Behandeling"].ToString());
}
}
reader.Close();
connection.Close();
}
catch (Exception a)
{
connection.Close();
MessageBox.Show(a.Message.ToString());
}
但我强烈建议您使用命令参数获取有关可以查看此MSDN page
的信息