tôi sử dụng OLEDB để đọc một AccessFile (accdb) to DataSet, tôi không biết gì về tên bảng hoặc cột, Việc thực hiện thường xuyên là:Sử dụng OLEDB để đọc AccessFile từ Suối to DataSet
public void GetAccessDB(string filepath){
this.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + filepath;
// get Table Names
this.TableNames = new List<string>();
using (System.Data.OleDb.OleDbConnection oledbConnection = new System.Data.OleDb.OleDbConnection(this.ConnectionString))
{
oledbConnection.Open();
System.Data.DataTable dt = null;
dt = oledbConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
foreach (System.Data.DataRow row in dt.Rows)
{
string strSheetTableName = row["TABLE_NAME"].ToString();
if (row["TABLE_TYPE"].ToString() == "TABLE")
this.TableNames.Add(strSheetTableName);
}
oledbConnection.Close();
}
this.Dataset = new System.Data.DataSet();
using (System.Data.OleDb.OleDbConnection oledbConnection = new System.Data.OleDb.OleDbConnection(this.ConnectionString))
{
foreach (string table in this.TableNames)
{
string command = string.Format("SELECT * FROM {0};", table);
using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(command, oledbConnection))
{
cmd.CommandType = System.Data.CommandType.Text;
oledbConnection.Open();
System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader();
this.Dataset.Load(dr, System.Data.LoadOption.OverwriteChanges, table);
oledbConnection.Close();
}
}
}
}
Nhưng Tôi cần lấy File Access từ Stream, và tôi không thể ghi nó trên đĩa tạm thời, vậy đề nghị của bạn là gì?
Tôi cần quá tải này GetAccessDB(Stream AccessFile)
? Tôi tìm kiếm và tìm thấy This, nhưng điều đó không rõ ràng đối với tôi, cuối cùng tôi cũng cần có DataSet bởi tất cả các Bảng trong Tệp Truy cập.
Có ai biết về điều này không?
Tại sao bạn muốn thực hiện các thao tác dữ liệu trong tệp 'Access' được mở dưới dạng luồng? Chỉ tò mò thôi. –
@AlexFilipovici Tập tin truy cập tải lên của khách hàng và tôi cần đọc chúng và tìm Datas đích và lưu trữ trên SQL và hiển thị một bảng mục tiêu cho khách hàng, nhưng tôi không thể (một số giới hạn) ghi tập tin vào đĩa! – Saeid
làm thế nào đến bạn không thể làm công việc trên đĩa địa phương ..? hãy giải thích lý luận của bạn tốt hơn để những người khác có thể hiểu và không dẫn bạn xuống con đường vàng khi họ nói – MethodMan