Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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# 为SQL查询创建进度条(使用ADO.NET)_C#_Sql_Wpf_Ado.net_Progress - Fatal编程技术网

C# 为SQL查询创建进度条(使用ADO.NET)

C# 为SQL查询创建进度条(使用ADO.NET),c#,sql,wpf,ado.net,progress,C#,Sql,Wpf,Ado.net,Progress,我试图为我的SQL查询创建一个进度条,但不知道从哪里开始。我已经尝试实现backgroundworker,但似乎无法使其正常工作 我正在使用VS2010.NET4.0 Treinen trein = listboxVoertuigNr.SelectedItem as Treinen; List<string> treinenIds = new List<string>(); foreach (var item in listboxVoertuigNr.SelectedIt

我试图为我的SQL查询创建一个进度条,但不知道从哪里开始。我已经尝试实现backgroundworker,但似乎无法使其正常工作

我正在使用VS2010.NET4.0

Treinen trein = listboxVoertuigNr.SelectedItem as Treinen;
List<string> treinenIds = new List<string>();
foreach (var item in listboxVoertuigNr.SelectedItems)
{
    treinenIds.Add(item.ToString());
}

fouten = eventsEntities.Foutens;
category = eventsEntities.Category_MMAP;


IEnumerable<dynamic> FoutenResultaat = new List<dynamic>();

FoutenResultaat =
(from x in treinen
    join fout in fouten
    on x.TreinId equals fout.TreinId
    where dateStart <= fout.Datum && dateEnd >= fout.Datum
    && treinenIds.Contains(fout.Treinen.Name)
    && fout.Omschrijving.Contains(textboxFilterOmschrijving.Text)
    && fout.FoutCode.Contains(textboxFilterFout.Text)
    && fout.Module.Contains(textboxFilterModule.Text)
    orderby fout.Datum descending, fout.Time descending

    join cat in category
    on fout.FoutCode equals cat.Foutcode

    select new
    {
        Datum = fout.Datum,
        Time = fout.Time,
        FoutCode = fout.FoutCode,
        Omschrijving = fout.Omschrijving,
        Module = fout.Module.ToUpper(),
        FoutId = fout.FoutId,
        Name = x.Name,
        Category = cat.Cat_MMAP
    });

GetGraad(FoutenResultaat);

任何帮助或指向正确的方向都将不胜感激

这其中包括
ado.net
?所有代码看起来都是在内存数据上运行的(除非您使用的是EF)?@CodingGorilla肯定同意您可以使用一个通用的progressbar,它只指示异步任务正在工作,或者您可以使用一个集合来检查已经添加了多少项。但这将是困难的部分。如果您不知道代码将产生多少项,您可以估计结果。你能为你使用的类提供更多的代码吗?我在你的代码中没有提到
BackgroundWorker
类。没有得到BackgroundWorker的任何结果。使用它对我来说真的很困惑,因为我试图从一些伪代码实现它。我觉得这不是一个正确的解决方案,这就是为什么要问一个开放的问题,我有点希望有一个优雅的解决方案,这其中包括
ado.net
?所有代码看起来都是在内存数据上运行的(除非您使用的是EF)?@CodingGorilla肯定同意您可以使用一个通用的progressbar,它只指示异步任务正在工作,或者您可以使用一个集合来检查已经添加了多少项。但这将是困难的部分。如果您不知道代码将产生多少项,您可以估计结果。你能为你使用的类提供更多的代码吗?我在你的代码中没有提到
BackgroundWorker
类。没有得到BackgroundWorker的任何结果。使用它对我来说真的很困惑,因为我试图从一些伪代码实现它。我觉得这不是一个正确的解决方案,所以我提出了一个开放的问题,我希望有一个优雅的解决方案
private void GetGraad(IEnumerable<dynamic> mijnResultaten)
{
    foreach (dynamic item in mijnResultaten)
    {
        string graad = "";
        string Toolbox = "";
        if (item.Module.Contains("_"))
            modNaam = item.Module.Split('_');
        else if (item.Module.Contains(" "))
            modNaam = item.Module.Split(' ');




        string compare = modNaam[0].Substring(0, modNaam[0].Length - 1).ToString();
        if (compare == "MPU")
        {

            var index = Properties.Settings.Default.listFoutcodeMPU.FindIndex(a => a == item.FoutCode);
            if (index == -1)
                graad = "";
            else
            {
                graad = Properties.Settings.Default.listGraadMPU[index];
                Toolbox = Properties.Settings.Default.listToolboxMPU[index];

            }



        }
        if (compare == "AAUX")
        {

            var index = Properties.Settings.Default.listFoutcodeAAUX.FindIndex(a => a == item.FoutCode);
            if (index == -1)
                graad = "";
            else
            {
                Toolbox = Properties.Settings.Default.listToolboxAAUX[index];
                graad = Properties.Settings.Default.listGraadAAUX[index];
            }


        }
        if (compare == "CTRL")
        {

            var index = Properties.Settings.Default.listFoutcodeCTRL.FindIndex(a => a == item.FoutCode);
            if (index == -1)
                graad = "";
            else
            {
                Toolbox = Properties.Settings.Default.listToolboxACTRL[index];
                graad = Properties.Settings.Default.listGraadCTRL[index];
            }
        }
        string cat = Convert.ToString(item.Category);

        if (cat == null)
            cat = "Onbeschikbaar";
        try
        {
            dataTreinFouten.Add(new FoutenMetNaam { Datum = item.Datum, FoutCode = item.FoutCode, Module = modNaam[0].ToUpper(), File = modNaam[1].ToUpper(), Name = item.Name, Omschrijving = item.Omschrijving, Time = item.Time, Graad = graad, FoutId = item.FoutId, Toolbox = Toolbox, Category = cat.ToUpper()});
        }
        catch (Exception ex)
        {
            Xceed.Wpf.Toolkit.MessageBox.Show(ex.Message);

        }

    }
}
class FoutenMetNaam
    {

        public DateTime Datum { get; set; }
        public TimeSpan Time { get; set; }
        public String FoutCode { get; set; }
        public String Omschrijving { get; set; }
        public String Module { get; set; }
        public String Name { get; set; }
        public int FoutId { get; set; }
        public string Graad { get; set; }
        public string File { get; set; }
        public List<ExtraInfo> listInfoRondFout { get; set; }
        public bool isManueel { get; set; }
        public string Toolbox { get; set; }
        public string Category { get; set; }

    }
private EventsEntities eventsEntities = new EventsEntities();