我想编写一个c#应用程序,它将从表中读取大量的Access查询。该表将包含查询的所有SQL语句。 查询可能包含Access函数和方法,如InStr,DateAdd等。 在T-SQL中重写所有这些语句实际上是不可行的,因为该表将不断添加新的查询。
简而言之,是否可以从c#运行Access SELECT查询(包含VBA函数),并将结果读入DataTable?
答案 0 :(得分:1)
这似乎是一个奇怪的要求,但我确信做这种事情在技术上是可行的。
string strProvider = "@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Database3.accdb";
string strSql = "Select * from score";
OleDbConnection con = new OleDbConnection(strProvider);
OleDbCommand cmd = new OleDbCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable scores = new DataTable();
da.Fill(scores);
dataGridView1.DataSource = scores;
并且,处理异常。 。
try
{
Dataset myDataSet=new Dataset();
string connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Database3.accdb";
OleDbCommand cmd = new OleDbCommand("Select * from score", conn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(cmd );
connection .Open();
myDataAdapter.Fill(myDataSet,"TableName");
}
catch (Exception ex)
{
Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
return;
}
finally
{
connection .Close();
}