System.Data.OleDb.OleDbException: 'Cannot open any more tables'



当我的程序在Visual Studio 2017中正常运行时,我关闭并重新打开了它,从那一刻起,我收到了错误消息"系统数据OleDb。OleDbException:"无法再打开任何表。"用粗体字母排成一行。我的代码已连接到Microsoft Access数据库。你能帮我吗?这是我的论文,我真的需要你的帮助。

private void Grid_Loaded(对象发送方,RoutedEventArgs e({标签内容=";τηση"+问题

var DBPath = System.AppDomain.CurrentDomain.BaseDirectory + "\Database\Users.mdb";
conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + DBPath);
conn.Open();
id = MainWindow.id;
OleDbDataReader dr1 = null;
do
{
rInt = r.Next(1, 20);
cmd = new OleDbCommand("SELECT * FROM TestQuestions WHERE Chapter='Eisagogi' AND ID="+rInt+"; ");
cmd.Connection = conn;
**dr1 = cmd.ExecuteReader();**

根据您的代码,我认为您正在使用雷达罩编号从数据库中过滤数据。

如果您想使用OleDbDataReader从数据库中获取数据,我建议您使用while(dr1.read())而不是do.. while

我修改了一些代码,这里有一个代码示例,你可以参考

代码:

var conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + DBPath);
conn.Open();
int rInt = 0;
Random random = new Random();
rInt = random.Next(1, 20);
OleDbCommand cmd = new OleDbCommand("SELECT * FROM TestQuestions WHERE Chapter='Eisagogi' AND ID=" + rInt + "; ",conn);
OleDbDataReader dr1 = cmd.ExecuteReader();
string result = string.Empty;
while(dr1.Read())
{
result = dr1["Question"].ToString();
MessageBox.Show(result);
}
conn.Close();

我想感谢大家的解决方案,但问题就在这里

OleDbCommand cmd=new OleDbCommand("SELECT*FROM TestQuestions WHERE Chapter='Isagogi'AND ID="+rInt+";,conn(;

我在数据库中更改了Eisagogi的名称,因此,"do。。。而"命令"从未结束。

相关内容

最新更新