我在VS17中编写代码,该代码使用存储在xlsx
文件中的数据库(到目前为止,它通过读取文件的路径并使用OLE.DB读取它来使用):
string DataBase_File = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString(), String.Format("{0}", db_name));
string constr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=NO""", DataBase_File);
using (OleDbConnection conn = new OleDbConnection(constr))
{
conn.Open();
OleDbCommand command = new OleDbCommand(string.Format("Select * from [{0}]", SheetName), conn);
OleDbDataReader reader = command.ExecuteReader();
当我想将其编译到.exe
文件中时,我按以下方式将文件添加到资源中:
var fileString = namespace.Properties.Resources.DataBase;
但是,我得到的结果是fileString是{bytes[28432]}
。
如何使其成为一个路径或文件,我可以将其中的值实际用作数据库?
谢谢
答案 0 :(得分:0)
有线
var fileString = namespace.Properties.Resources.DataBase;
您正在获取字节数组(byte[]
)并且您正在尝试将该字节数组用作excel文件的路径。不幸的是,这不起作用。将fileString指定为文件名时,您获得.ToString()
的{{1}},因此byte[]
。
唯一能实现的任务是将该字节写入(临时)文件,从中获取数据,以及删除临时文件。为此,您可以执行以下操作:
{bytes[28432]}