C# 将我的一个固定列类型设置为string并通过gridview显示

C# 将我的一个固定列类型设置为string并通过gridview显示,c#,winforms,C#,Winforms,我想通过datagridview显示sqlite数据库中的数据。此数据的数据类型包括datetime、Int、varchar。 所以,我一直在寻找答案,看看如何将datatable中的一列设置为仅在gridview中显示为Date。我已经搜索了一些可能的解决方案,如克隆datatable和格式化gridview列defaultcellstyle格式,如下所示 gridView.Columns[0].DefaultCellStyle.Format = "dd/MM/yyyy"; 然而,我似

我想通过datagridview显示sqlite数据库中的数据。此数据的数据类型包括datetime、Int、varchar。

所以,我一直在寻找答案,看看如何将datatable中的一列设置为仅在gridview中显示为Date。我已经搜索了一些可能的解决方案,如克隆datatable和格式化gridview列defaultcellstyle格式,如下所示

gridView.Columns[0].DefaultCellStyle.Format = "dd/MM/yyyy"; 
然而,我似乎无法克服这个错误。我的代码的错误是,如果我把下面的代码放在第一位,它将显示

System.FormatException:'字符串未被识别为有效的 日期时间。”

但是如果我先设置defaultcellstyleformat,datatable列中将不会有任何数据,因此它将显示另一个错误

System.ArgumentOutOfRangeException:'索引超出范围。必须是 非负数且小于集合的大小。”

我确实理解这个错误,但是我似乎找不到解决办法。有人知道如何解决这个问题吗?如果已经有一个问题可以解决这个问题,请向我展示它,我将删除这个问题。提前谢谢

编辑: 这是我使用的代码

SQLiteConnection conn2=newSQLITeConnection(“数据源=C:\sqlite\午餐顺序.db”)


键入数据,日期时间格式可能不同

sqlite没有“日期和时间数据类型”,sqlite的内置日期和时间函数能够将日期和时间存储为文本、实数或整数值

文本为ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)

我应该写评论以上,但新的电子邮件与公司域名的变化不允许我写评论,所以


希望有帮助。

dt的价值是什么?还有第二个例外是什么?@S.Petrosov我已经更新了我的问题,很抱歉,我想我们无法在当前信息方面为您提供那么多帮助。哪一行抛出这两个异常,代码前后是什么?这些代码中这些变量的值是多少?索引是从0开始还是从1开始?这是第3栏还是第2栏?@HerbertYu我已经添加了我使用的代码谢谢你,我只有在查看链接并将其引用到你的帖子时才得到它。
da.Fill(dt);
        SQLiteDataAdapter da = new SQLiteDataAdapter("select d.dl_Date AS Date, e.dept_Name AS Department, e.emp_ID AS Employee_No, e.emp_Name AS Employee_Name, d.dl_Type AS Order_Type from empInfo e, dailyLunch d where e.emp_ID = d.emp_Id AND e.dept_Name = '"
            + cb_Department.SelectedValue + "' order by d.dl_Date", conn2);
        DataSet ds = new DataSet();

        conn2.Open();
        da.Fill(ds); //where the exception is
        gv_Report.DataSource = ds.Tables[0];

        conn2.Close();