Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找不到表0_C#_Sql_Visual Studio_Ms Access - Fatal编程技术网

C# 找不到表0

C# 找不到表0,c#,sql,visual-studio,ms-access,C#,Sql,Visual Studio,Ms Access,该代码在其他表上非常有效。 如果他在桌子上找到他得到的东西,代码返回true,如果他没有找到它,则返回false。 转换错误:找不到表0 public bool Found(long num) { DataSet ds = new DataSet(); string str = string.Format("select * from Customers where Customer_Id={0} ", num); ds =

该代码在其他表上非常有效。 如果他在桌子上找到他得到的东西,代码返回true,如果他没有找到它,则返回false。 转换错误:找不到表0

        public bool Found(long num)
    {
        DataSet ds = new DataSet();
        string str = string.Format("select * from Customers where Customer_Id={0} ", num);
        ds = ReturnDS(str);
        if (ds.Tables[0].Rows.Count == 0)
            return false;
        else
            return true;
    }

        public DataSet ReturnDS(string SqlStr)
    {
        DataSet ds = new DataSet();
        OleDbCommand cmd = new OleDbCommand();
        try
        {
            //  sql מאפיין אשר מאפשר לקבוע או לקבל את הוראת :CommandText
            cmd.CommandText = SqlStr;
            //  OleDbConnection מאפיין אשר מאפשר לקבוע או לקבל את אובייקט ההתחברות מהמחלקה :Connection
            cmd.Connection = cnn;
            //DataSet ומשימה שנייה בכדי לעדכן את בסיס הנתונים בהתאם למידע שהתרחש ב  DataSet יצירת מופע למחלקה המייצגת אובייקט ההתחברות לבסיס הנתונים. ייצוג זה דרוש לשתי משימות משימה ראשונה בכדי להעביר נתונים מבסיס הנתונים ל 
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            // DataSet טוענת את הנתונים לתוך אובייקט  Fill המתודה 
            da.Fill(ds);
        }
        catch (Exception e)
        { MessageBox.Show(e.Message); }
        finally
        {
            cnn.Close();
        }
        return ds;
    }

该错误意味着数据集不包含索引为0的表。 检查ReturnDS正在做什么,如果有一些信息,为什么找不到表。也许您的SQL语句中有一个错误


这张桌子存在吗?该表是否包含名为Customer\u Id的列?你有阅读权吗?等等。

也检查表格计数

public bool Found(long num)
{
    DataSet ds = new DataSet();
    string str = string.Format("select * from Customers where Customer_Id={0} ", num);
    ds = ReturnDS(str);
    return ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0;
}

使用select count*向客户显示RETURNDSCUSTOMER,其中Customer_Id={0}将快得多。数据库中没有名为Customers的表。有趣的一点是:为什么ReturnDS不会抛出异常并立即停止代码执行?这似乎是一个更大的问题。这也会返回一个错误。您仍在尝试访问索引为0的表。如果.Tables.Count>0I将进行检查,则不会访问该表it@EugeneKomisarenko如果.Tables.Count==0,会发生什么?它将像预期的那样返回false。在C中,条件表达式不是一次全部求值的,它是从左到右逐个求值的,因此不会触发任何错误,因为第二个条件将不会执行。是的,我有所有这些,并且在您的ReturnDS中不会触发捕获?@GalBen Ok。在ReturnDS中,您会看到一个Try{}catch异常e{},它捕获一个异常。您应该会看到一个消息框,其中显示缓存的异常。使用try-catch,您可以防止代码像屏幕截图中那样崩溃。执行ReturnDS时,是否看到任何消息框?是数据类型不匹配当where条件与列数据类型不匹配时。请检查您的数据库,该列具有哪种类型。也许这只是一个数字。您可以快速尝试将WHERE中的{0}替换为不带括号的0。