使用视图填充数据集

时间:2017-05-18 17:31:44

标签: c# winforms sqlite visual-studio-2015

是否可以使用SQL视图在WinForms中填充数据集?我'我使用SQLite,因此在这种特殊情况下,存储过程不是一个选项,所以我创建了一个包含我需要的数据的视图。但是,在编写我的代码时,就像我在使用表时一样,我得到错误"没有这样的表:ReportDates" 就行 adapter.Fill(ds,& #34; ReportDates&#34); 即可。有没有办法以不同方式引用它,因此它被识别为View或者这是不可能的?

我的代码是这样的:

    private void PopulateReportPeriodDropDown()
    {
        DataSet ds = new DataSet();

        using (SQLiteConnection conn = new SQLiteConnection(sqlcs.ConnectionString()))
        {
            conn.Open();
            string stm = "SELECT * FROM ReportDates";

            using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(stm, conn))
            {
                adapter.Fill(ds, "ReportDates");

                DataRow newRow = ds.Tables[0].NewRow();
                newRow["DateIndex"] = 0;
                newRow["DateDescription"] = "-- Select Reporting Period --";
                ds.Tables[0].Rows.InsertAt(newRow, 0);

                reportingPeriodDropDown.DataSource = ds.Tables[0];
                reportingPeriodDropDown.ValueMember = "DateIndex";
                reportingPeriodDropDown.DisplayMember = "DateDescription";

                reportingPeriodDropDown.SelectedIndex = 0;
            }
        }
    }

我猜一个选项是使用视图中的数据创建临时表,然后用该数据填充数据集,然后删除临时表。虽然这似乎是一种混乱的做事方式。

编辑:我应该提一下,当我引用表名时,此代码可以正常工作,而不是在我尝试引用视图时。

1 个答案:

答案 0 :(得分:0)

在这种情况下,数据库必定已损坏。我最终完全删除并从头开始重新创建它,现在一切都按预期工作了。