在我的WPF应用程序中,使用Oracle数据库和C#,我有这个代码来填充数据网格,但是它抛出了System.IndexOutOfRangeException',并且找不到表0' 。
如果从SQL中删除AS Date
,则不会抛出异常,但数据网格会在应用程序中将列名称显示为to_char(date_, 'dd/mm/yyyy')
db.SetSql("select sn, activity, attendees, to_char(date_, 'dd/mm/yyyy') AS Date from cpr");
DataSet result = db.RetrieveRecords();
datagrid1.ItemsSource = new DataView(result.Tables[0]);
答案 0 :(得分:1)
您需要更正您的查询。 date是oracle中的数据类型,这就是别名不起作用的原因。
将其括在双引号中或更改自己的列名。
在SQL plus ..中尝试此查询应该可以正常工作
select sn, activity, attendees, to_char(date_, 'dd/mm/yyyy') AS "Date" from cpr
然后在C#中尝试这个
db.SetSql("select sn, activity, attendees, to_char(date_, 'dd/mm/yyyy') AS \"Date\" from cpr");
答案 1 :(得分:1)
可能是因为Date
是Oracle
中的key word。尝试通过转义关键字
db.SetSql("select sn, activity, attendees, to_char(date_, 'dd/mm/yyyy') AS \"Date\" from cpr");