标签: oledbexception

OleDbException超出系统资源

以下代码执行简单的插入命令.如果连续调用2000次(插入2,000行),则抛出一个带有message ="System Resources Exceeded"的OleDbException.还有什么我应该做的事情来释放资源吗?

using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbCommand cmd = new OleDbCommand(commandText, conn))
{
    conn.Open();
    cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

c# oledbexception

7
推荐指数
1
解决办法
1万
查看次数

OleDB连接字符串,用于读取由其他用户独占打开的Excel文件

谁能告诉我OleDB连接字符串只是exclusively用于读取其他用户打开的Excel文件

我试过跟随连接字符串,这对我不起作用: -

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Mode=Read;Extended Properties=\"Excel 8.0;HDR=YES;ReadOnly=true;\"";
Run Code Online (Sandbox Code Playgroud)

当其他用户打开时,此连接字符串抛出以下异常: -

The Microsoft Jet database engine cannot open the file ''.  It is already opened exclusively by another user, or you need permission to view its data.
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. Excel文件保留在共享上,以便多个用户可以打开它.
  2. 使用的提供程序: - Microsoft.Jet.OLEDB.4.0
  3. Excel文件类型: - MS Excel 97-2003工作表
  4. 复制文件时容许

oledb oledbconnection oledbexception

6
推荐指数
1
解决办法
2209
查看次数

尝试从Access数据库中删除时,C#OleDb异常"没有给出一个或多个必需参数的值"

我有一张桌子上有"SEMESTER,SUBJECT,OFFER,RESULT",其中"SEMESTER"和"SUBJECT"是主要的.当我使用查询

"DELETE FROM Course_Information WHERE Semester = 1 AND Subject = 'CSE-414' ;

它在访问数据库中完美地工作,但是当我尝试在我的c#代码中使用它时,我总是会遇到异常.

此外,如果我使用"DELETE FROM Course_Information WHERE Semester = 1;

我想在WHERE条件下同时使用"SUBJECT"和"SEMESTER"(因为在同一学期可能会有不同的科目)

看我的代码,

connection_string = aConnection.return_connectionString(connection_string);
            string sql_query = "DELETE FROM Course_Information WHERE Semester = " + this.textBox1.Text + " AND Subject = " + this.textBox2.Text + " ;";

            OleDbConnection connect = new OleDbConnection(connection_string);
            OleDbCommand command = new OleDbCommand(sql_query, connect);
            try
            {
                connect.Open();
                OleDbDataReader reader = command.ExecuteReader();
                MessageBox.Show("Delete Successful!");
                connect.Close();
                UpdateDatabase();
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
Run Code Online (Sandbox Code Playgroud)

c# ms-access oledbconnection oledbexception

5
推荐指数
1
解决办法
4万
查看次数

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

请您检查以下代码是否存在导致"条件表达式中的数据类型不匹配"异常的错误?我似乎无法找到问题的根源......

在此输入图像描述

*record.Date可空DateTime?类型的*被明确地转换为DateTime

*record.Date被设置为可为空,用于程序中的其他用途.但是从DateTimePicker检索INSERT操作record.Date集合,因此该方法的值永远不应为null.record.Date

哪里

在此输入图像描述

和(如果你想知道的话)

在此输入图像描述


从我的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);
        insertCommand.Parameters.AddWithValue("@Date", (DateTime)record.Date);
        insertCommand.Parameters.AddWithValue("@Subject", record.Subject);
        insertCommand.Parameters.AddWithValue("@Type", record.getDBType());

        connection.Open();
        insertCommand.ExecuteNonQuery();

        string selectStatement = "SELECT IDENT_CURRENT('DocumentInfo') FROM DocumentInfo"; …
Run Code Online (Sandbox Code Playgroud)

c# ms-access oledbexception oledbparameter

4
推荐指数
1
解决办法
2万
查看次数

System.Data.OleDb.OleDbException:操作必须使用可更新的查询

我糊涂了.我正在尝试使用ASP.Net将单个记录添加到Access 2000数据库中.但是,当我尝试添加新记录时,我收到以下错误:

异常详细信息:System.Data.OleDb.OleDbException:操作必须使用可更新的查询.

asp.net oledb oledbexception

3
推荐指数
1
解决办法
4778
查看次数

无法用数据填充OleDbDataAdapter

我无法填写数据 OleDbDataAdapter

我收到OleDbException以下消息 Syntax error in FROM clause.

在这条线上 adapter.Fill(dataset, "User")

这是代码

Imports System.Data.OleDb

Public Class Form1

Public connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyDatabase.mdb;Persist Security Info=False")

Private Sub button_display_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button_display.Click
    connection.Close()
    connection.Open()
    Dim adapter As New OleDbDataAdapter
    adapter.SelectCommand = New OleDbCommand
    adapter.SelectCommand.Connection = connection
    adapter.SelectCommand.CommandText = "select * from user;"

    Dim dataset As New DataSet
    adapter.Fill(dataset, "User")
    connection.Close()
    Dim datarow = dataset.Tables("User").Rows(0)
    Dim fname, lname As String
    fname = datarow(0)
    lname …
Run Code Online (Sandbox Code Playgroud)

database vb.net ms-access oledbexception

1
推荐指数
1
解决办法
1651
查看次数

ExecuteReader出现“参数?_1没有默认值”错误

Web服务中的以下代码有问题。寻找了解决方案,但是我所看到的似乎与我在下面所做的没什么不同。

注意:字符串变量'AccountNo'被传递到包含以下代码的函数中。

该错误在代码的最后一行-ExecuteReader上生成。

    Dim sConnString As String
    Dim rdr As OleDbDataReader
    Dim orderPaid As Decimal
    Dim fbeused As Decimal

    sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\orders.mdb'"

    Dim conn As New OleDbConnection(sConnString)

    Dim sb As New StringBuilder
    sb.Append("SELECT DISTINCTROW OrderHeaders.Accountno, Sum(([paidqty]*[unitprice])*[orderheaders].[entpercent]/100) AS orderpaid, Sum([freeqty]*[unitprice]) AS fbeused")
    sb.Append(" FROM OrderHeaders INNER JOIN OrderDetails ON OrderHeaders.[OrderNo] = OrderDetails.[OrderNo]")
    sb.Append(" GROUP BY OrderHeaders.Accountno HAVING OrderHeaders.Accountno=?")
    Dim sqlString As String = sb.ToString

    Dim cmd As New OleDbCommand(sqlString, conn)
    cmd.CommandType = CommandType.Text
    'cmd.Parameters.AddWithValue("AccNo", AccountNo)
    cmd.Parameters.Add("AccNo", OleDbType.VarWChar).Value = AccountNo
    conn.Open() …
Run Code Online (Sandbox Code Playgroud)

.net vb.net oledb oledbexception oledbcommand

0
推荐指数
1
解决办法
5734
查看次数

使用BETWEEN运算符的SQL查询导致"查询表达式中的数字语法错误"

我正在使用MS Access数据库.我想获得2个日期之间的第一个和最后一个记录.但是在使用BETWEEN运算符时出错:

查询表达式'Datum_k BETWEEN 3.4.2017中的语法错误数.和3.4.2017.'.

我的代码:

private void GetPrviZadnjiBrojRacuna()
{
    OleDbCommand commandOD = new OleDbCommand("SELECT Dokument FROM DnevniPromet WHERE (Datum_k BETWEEN " + datumOd + " AND " + datumDo + ") ORDER BY [Datum_k] ASC", dataModel.CS);
    OleDbCommand commandDO = new OleDbCommand("SELECT Dokument FROM DnevniPromet WHERE [Datum_k] >= " + datumOd + " AND [Datum_k] <= " + datumDo + " ORDER BY [Datum_k] DESC", dataModel.CS);

    try
    {
        dataModel.DT.Clear();
        OleDbDataAdapter ODbDA = new OleDbDataAdapter(commandOD);

        if (!dataModel.CS.State.Equals(ConnectionState.Open))
        {
            dataModel.CS.Open(); …
Run Code Online (Sandbox Code Playgroud)

c# ms-access oledbexception winforms

0
推荐指数
1
解决办法
381
查看次数