Tag: ms access

如何使用C#应用程序查询MS Access数据库?

我有一个使用Microsoft.Office.Interop.Excel从Excel工作簿中提取数据的应用程序。 Excel工作簿中的信息已移至Access数据库,我的任务是更新应用程序,以便它在数据库中查找数据。 我找到了Microsoft.Office.Interop.Access参考,但是如何使用它来打开数据库并运行查询? MSDN上的这方面的文档似乎有点缺乏。 也许我正在寻找错误的地方……:\ C#应用程序使用的是.NET 3.5。 谢谢。

在C#中将100 000条记录插入MDB文件的最快方法是什么?

我知道这些问题相当普遍,但我整天都在搜索,但我找不到合适的方法。 这是我的代码,使用C#将大约100 000个虚拟记录插入到MDB文件中。 OleDbConnection con = new OleDbConnection(); string dbProvider = “PROVIDER=Microsoft.Jet.OLEDB.4.0;”; string dbSource = “Data Source = D:/programming/sample.mdb”; con.ConnectionString = dbProvider + dbSource; OleDbCommand cmd = new OleDbCommand(); cmd.Connection = con; cmd.CommandText = “INSERT INTO tblBooks (Title, Price, Tag, Author) VALUES (@title, @price, @tag, @author)”; cmd.Parameters.AddWithValue(“@title”, “Dummy Text 1”); cmd.Parameters.AddWithValue(“@price”, 10); cmd.Parameters.AddWithValue(“@tag”, “Dummy Text […]

从读取Access数据库的OleDbDataReader中获取值

下面是我用来连接Access数据库并从查询中提取值的代码。 问题是..我无法从读者对象中获取任何值。 我可以看到有正确的行数,但是我一直得到一个InvalidOperationException(我是否使用GetValue()或GetString())说“行/列没有数据”。 System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(); conn.ConnectionString = @”Provider=Microsoft Office 12.0 Access Database Engine OLE DB Provider;” + @”Data source= C:\Users\nearod\Desktop\ImportDB.accdb”; try { conn.Open(); OleDbCommand cmd = new OleDbCommand(“SELECT * FROM [SQL Agent Unique ID Test Load]”, conn); OleDbDataReader reader = cmd.ExecuteReader(); string companyCode = reader.GetValue(0).ToString(); string agentId = reader.GetString(1); string firstName = […]

加快插入mdb

有没有办法加快插入到mdb? using (StreamReader sr = new StreamReader(_localDir + “\\” + _filename)) while ((line = sr.ReadLine()) != null) { //sanitize the data } 对于来自csv的约2mil记录,这需要大约20秒,但是当我添加mdb插入时,我在10分钟内几乎无法获得10,000条记录,因此您可以看到它将永远需要 using (StreamReader sr = new StreamReader(_localDir + “\\” + _filename)) while ((line = sr.ReadLine()) != null) { //sanitize the data using (OleDbConnection con = new OleDbConnection(_conStr)) using (OleDbCommand cmd = new OleDbCommand()) […]

查询网络文件夹中的Access数据库的C#程序比查询本地副本花费的时间更长

我有一个使用MS Access数据库(.mdb文件)的C#应用​​程序。 我与网络用户共享我的数据库,以便他们可以使用我的应用程序访问数据库。 当我运行我的应用程序时,在网络数据库上执行查询需要更长的时间,而同一查询在本地计算机上花费的时间更少。 任何人都可以提供有关如何通过网络共享上的Access数据库减少此性能问题的建议吗?

从Access读取图像 – 参数无效

我在Access .mdb文件中有简单的数据库,但我不知道如何处理:当我从流创建Image时,“参数无效”exception。 我读过我需要去掉78个字节的偏移量( 从这里开始 )但是当我调用FromStream时,我仍然得到一个“参数无效”错误,即使在剥离前78个字节之后也是如此。 这对我不起作用: byte[] abytPic = (byte[])dt.Rows[0][“Photo”]; byte arrary with image if ((abytPic[0] == 21) && (abytPic[1] == 28)) //It’s true { byte[] abytStripped = new byte[abytPic.Length – 78]; System.Buffer.BlockCopy(abytPic, 78, abytStripped, 0, abytPic.Length – 78); msPic = new emoryStream(abytStripped); }

数据库Command对象的参数顺序真的很重要吗?

我正在调试数据库操作代码,我发现虽然代码从未失败,但从未发生过正确的UPDATE。 这是代码: condb.Open(); OleDbCommand dbcom = new OleDbCommand(“UPDATE Word SET word=?,sentence=?,mp3=? WHERE id=? AND exercise_id=?”, condb); dbcom.Parameters.AddWithValue(“id”, wd.ID); dbcom.Parameters.AddWithValue(“exercise_id”, wd.ExID); dbcom.Parameters.AddWithValue(“word”, wd.Name); dbcom.Parameters.AddWithValue(“sentence”, wd.Sentence); dbcom.Parameters.AddWithValue(“mp3”, wd.Mp3); 但经过一些调整后,这有效: condb.Open(); OleDbCommand dbcom = new OleDbCommand(“UPDATE Word SET word=?,sentence=?,mp3=? WHERE id=? AND exercise_id=?”, condb); dbcom.Parameters.AddWithValue(“word”, wd.Name); dbcom.Parameters.AddWithValue(“sentence”, wd.Sentence); dbcom.Parameters.AddWithValue(“mp3”, wd.Mp3); dbcom.Parameters.AddWithValue(“id”, wd.ID); dbcom.Parameters.AddWithValue(“exercise_id”, wd.ExID); 为什么在OleDb连接的情况下必须在WHERE子句中给出最后一个参数是如此重要? 之前使用过MySQL,我可以(并且通常会)首先编写WHERE子句的参数,因为这对我来说更合乎逻辑。 一般查询数据库时参数顺序是否重要? 一些性能问题还是什么? […]

从Access DB中提取OLE对象(pdf)

我们正在将几个旧的Access数据库升级/转换为MS-SQL。 其中许多数据库都具有存储PDF文件的OLE对象字段。 我正在寻找一种方法来提取这些文件并将它们存储在我们的SQL数据库中。 我已经看到类似的问题,回答你如何使用图像文件(jpg,bmp,gif等),但我还没有找到适用于PDF的方法。

c#.net没有安装Access的MS Access数据库

可能吗? 我试过谷歌,但我必须搜索错误的关键词而不是得到答案。 我有一个小应用程序,只有2-3人使用,我想将数据存储在数据库中。 我无法安装任何SQL服务器,所以我认为访问将是最好的选择。 它将使用的计算机也没有安装Access。 我正在使用VS2012 Express .net4.0

从Access数据库中检索图像

请允许任何人帮我这个代码? 我试图从Access数据库中检索图像.. private void btnRetrieve_Click_1(object sender, EventArgs e) { //Save Temporarily that image bytes in one location and give that path to picture box con.Open(); cmd = new OleDbCommand(“select pic from shapes2 where ID= 1”, con); da = new OleDbDataAdapter(cmd); da.Fill(dt); if (dt.Rows.Count > 0) { if (dt.Rows[0][“pic”] != DBNull.Value) { pictureBox4.Image = ByteArrayToImage((Byte[])dt.Rows[0][“pic”]); } […]