Tag: ms access

如何删除Access Db的临时ldb文件

我有一个ASP.NET项目。 我正在连接到数据库,然后关闭并处理连接对象。 但是当任何人进入我的网站时,MS Access会创建一个临时的dbname.ldb。 当我想从我的服务器下载我的原始mdb文件时,它将不允许我访问mdb文件。 如果服务器中有ldb文件,我什么也做不了。 它锁定mdb文件,我无法移动它。 所以有什么问题? 我打开连接并关闭它。 那么为什么这个ldb文件在连接关闭后不会自行删除。

什么是ConnectionString为访问mdb文件创建OdbcConnection

我想使用Odbc从c#连接到Access MDB文件。 当我尝试执行时 OdbcConnection con = new OdbcConnection( “Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\temp\\test.mdb;”); 我得到以下exception: exc {System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle) at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at […]

在数据库中输入时在文本框中拆分文本

当插入到MS Access(数据库)中时,如何将文本框中的单词拆分或放入另一行。 例如,我的文本框中包含以下单词:ABC DEF GHI JKL 当用户按下回车键时,会在文本框中插入以下单词,但每个单词都会在新行中? 就像,ABC将在第一排,DEF将在第二排,依此类推。 请帮我。 谢谢。

为什么通过OleDb在Access数据库中调用我的UPDATE查询不起作用?

更新2:我解决了这个,看到我的答案。 我使用OleDb从C#调用Microsoft Access数据库中的查询,但我无法让我的更新查询工作。 不会引发任何错误,但数据库中不会保留更新。 任何人都可以对此有所了解吗? 数据库中的SQL查询: UPDATE tableName SET tableName.LastPolledDtg = LastPolledDtg WHERE tableName.key = ID; C#: OleDbCommand command = new OleDbCommand(); SetCommandType(command, CommandType.StoredProcedure, “NameOfQueryInAccessDatabase”); AddParamToSQLCmd(command, “@ID”, OleDbType.Integer, 4, ParameterDirection.Input, id); AddParamToSQLCmd(command, “@LastPolledDtg”, OleDbType.Date, 4, ParameterDirection.Input, DateTime.Now); using (OleDbConnection connection = new OleDbConnection(“connectionString”)) { command.Connection = connection; connection.Open(); result = command.ExecuteNonQuery(); } 连接字符串: “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents […]

我没有关闭以前的DataReader,但在哪里?

我已经更改了以前的代码,所以我没有使用’使用’。 它工作得更早,不同类中的代码基本上代表相同的东西,但它的工作。 我现在已经盯着它看了2个小时,我无法弄清问题可能出在哪里。 我只有一个阅读器,但每次我使用DisplayFileContent方法时都会收到错误:错误: There is already an open DataReader associated with this command which must be closed first. // May be public so we can display // content of file from different forms. public void DisplayFileContent(string filePath) { // Counting all entries. int countEntries = 0; // Encrypting/Decrypting data. EncryptDecrypt security = new EncryptDecrypt(); […]

阅读Microsoft Access数据库64位

我有一种情况,我将我的.NET应用程序移动到64位,我仍然需要从C#代码中读取Microsoft Access数据库中的数据。 我有一个建议,我可以编写一个Web服务,定期从Microsoft Access读取数据并将其转储到SQL Server,这样我就可以从我的应用程序中的SQL表读取,而不是直接访问Microsoft Access数据库。 这有一些问题,例如从Web服务或WCF服务读取特定PC上的Microsoft Access数据库。 但我想具有相关权限的帐户可以解决此问题。 还有其他人有这种情况吗? 如果是这样,你是如何解决它的? 提前感谢任何指导。

C#访问OleDb标准表达式中的数据类型不匹配

请您检查以下代码是否存在错误,这些错误会导致“标准表达式中的数据类型不匹配”exception? 我似乎无法找到问题的根源…… * record.Date为空的DateTime? type显式转换为DateTime * record.Date设置为可为空,用于程序中的其他用途。 但是从DateTimePicker检索为INSERT操作设置的record.Date ,因此此方法的record.Date值永远不应为null 。 哪里 和(如果你想知道) 从我的Access文件(设计视图): 谢谢! 这是AddRecord方法。 谢谢! public static int AddRecord(Record record) { OleDbConnection connection = LABMeetingRecordsDB.GetConnection(); string insertStatement = “INSERT INTO DocumentInfo ” + “([FileName], [Date], [Subject], [Type]) ” + “VALUES (?, ?, ?, ?)”; try { OleDbCommand insertCommand = new OleDbCommand(insertStatement, connection); insertCommand.Parameters.AddWithValue(“@FileName”, record.FileName); […]

查询值和目标字段的数量不是相同的错误

我在将数据插入数据库时​​遇到错误。 错误是: “查询值和目标字段的数量不相同”。 插入代码: OleDbConnection vconn = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Mutyyba\\Documents\\Database1.accdb”); vconn.Open(); string name = textBox1.Text; string address = textBox3.Text; int rollno = Convert.ToInt32(textBox2.Text); string vquery = “insert into Table1 values(@vname,@vrollno,@vaddress)”; OleDbCommand vcomm = new OleDbCommand(vquery, vconn); vcomm.Parameters.AddWithValue(“@vname”, name); vcomm.Parameters.AddWithValue(“@vrollno”, rollno); vcomm.Parameters.AddWithValue(“@vaddress”, address); vcomm.ExecuteNonQuery(); MessageBox.Show(“your record has been recorded sucessfully!”); vconn.Close(); 我究竟做错了什么?

连接池与Access数据库

我有一个应用程序经常从Access数据库中读取数据,有没有办法使用连接池? 我的Open Databse方法: – private bool OpenDatabaseConnection(string databaseName) { try { string connectionString = “Provider = Microsoft.Jet.OLEDB.4.0; ” + “Data Source = ” + databaseName + “;”; settingsDbConn = new OleDbConnection(connectionString); settingsDbConn.Open(); } catch (Exception) { return false; } return true; }

没有MSysObject错误的读取权限

我试图通过OleDb连接到MS Access数据库(.mdb)。 我的疑问是 SELECT * FROM ListQueries 这让我错误 SQL执行错误。 执行的SQL语句:SELECT * FROM ListQueries错误源:Microsoft JET数据库引擎错误消息:无法读取记录; 没有’MSysObjects’的读取权限。 然后我尝试了这个答案 ,但没有帮助。 然后我看到另一个答案说这样做。 strDdl = “GRANT SELECT ON MSysObjects TO Admin;” CurrentProject.Connection.Execute strDdl 我不知道如何在我的web project实现它。 按照@HansUp的建议写这样的东西 或者,如果从OleDb连接到Access数据库运行它,它应该从c#开始工作 代码是, OleDbConnection con; using (con = new OleDbConnection(Connection.connectionString())) { con.Open(); using (var com = new OleDbCommand(“GRANT SELECT ON MSysObjects TO Admin”, con)) { […]