C# MS Access OleDB不返回任何行
我正在使用此代码将数据返回到我的应用程序:C# MS Access OleDB不返回任何行,c#,oledbcommand,C#,Oledbcommand,我正在使用此代码将数据返回到我的应用程序: try { OleDbConnection conn = new OleDbConnection(GetConnectionStringAccess()); string cSQL = "SELECT Cracha, Data_Hora, Terminal, Entrada_Saida, Situacao, Tipo, Divergencia, SaiuMarcacao,
try
{
OleDbConnection conn = new OleDbConnection(GetConnectionStringAccess());
string cSQL = "SELECT Cracha, Data_Hora, Terminal, Entrada_Saida, Situacao, Tipo, Divergencia, SaiuMarcacao, Justificativa, IDMarcacao, PIS, NSR FROM Marcacao";
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = cSQL;
cmd.CommandType = CommandType.Text;
OleDbDataReader dr = cmd.ExecuteReader();
conn.Close();
return dr;
}
catch (Exception ex)
{
throw;
}
但是什么也没有归还。我的数据库有一百万条记录
如果我使用数据集/表适配器访问数据库,数据会正常显示,但在代码中不会返回任何内容
下面是我的方法GetConnectionStringAccess()返回的连接字符串:
下面是我从app.config获取应用程序连接字符串的方法:
public static string GetConnectionStringAccess()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["ImportaAccess.Properties.Settings.PontoAccessBM"].ConnectionString;
}
在app.config中,这是connectionstring键:
<add name="ImportaAccess.Properties.Settings.PontoAccessBM" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CCBM\Ponto Dimep\BM\DIMEP.Mdb;Persist Security Info=True;Jet OLEDB:Database Password=obdI109j"
providerName="System.Data.OleDb" />
如果运行tableAdapter.Fill方法,为什么我的代码不使用此代码返回任何行并返回所有行?在关闭连接之前,您需要从datareader读取对象。比如:
List<object> x = new List<>();
while (dr.Read())
{
x.Add(<your stuff>); // add as appropriate
}
List x=新列表();
while(dr.Read())
{
x、 Add();//根据需要添加
}
然后返回列表(或您使用的任何内容),而不是返回datareader,因为datareader是指针,并且在返回之前关闭 尝试在DataReader关闭之前使用数据表检索数据 像这样:
try
{
DataTable Tbl = new DataTable();
OleDbConnection conn = new OleDbConnection(GetConnectionStringAccess());
string cSQL = "SELECT Cracha, Data_Hora, Terminal, Entrada_Saida, Situacao, Tipo, Divergencia, SaiuMarcacao, Justificativa, IDMarcacao, PIS, NSR FROM Marcacao";
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = cSQL;
cmd.CommandType = CommandType.Text;
OleDbDataReader dr = cmd.ExecuteReader();
Tbl.Load(rd,LoadOption.OverwriteChanges);
conn.Close();
return Tbl;
}
catch (Exception ex)
{
throw;
}
try
{
DataTable Tbl = new DataTable();
OleDbConnection conn = new OleDbConnection(GetConnectionStringAccess());
string cSQL = "SELECT Cracha, Data_Hora, Terminal, Entrada_Saida, Situacao, Tipo, Divergencia, SaiuMarcacao, Justificativa, IDMarcacao, PIS, NSR FROM Marcacao";
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = cSQL;
cmd.CommandType = CommandType.Text;
OleDbDataReader dr = cmd.ExecuteReader();
Tbl.Load(rd,LoadOption.OverwriteChanges);
conn.Close();
return Tbl;
}
catch (Exception ex)
{
throw;
}