C# 填充数据表时检查是否存在多行

C# 填充数据表时检查是否存在多行,c#,C#,我试图用数据列表中使用的年份范围填充数据表。我的应用程序页面上有五个列表,我有按钮可以滚动浏览年份:1995年、1996年、1997年等等。 但是,如果数据库中不存在1997年,则我的应用程序中会出现错误:位置2没有行。我怎样才能防止这种情况if(dt.Rows.Count>0)检查数据是否存在,但如何在设置其他字符串的值(第二年、第三年、第四年、第五年)之前检查数据是否存在 这不起作用: if (dt.Rows[1][0].Count > 0) {

我试图用数据列表中使用的年份范围填充数据表。我的应用程序页面上有五个列表,我有按钮可以滚动浏览年份:1995年、1996年、1997年等等。 但是,如果数据库中不存在1997年,则我的应用程序中会出现错误:
位置2没有行。我怎样才能防止这种情况
if(dt.Rows.Count>0)
检查数据是否存在,但如何在设置其他字符串的值(第二年、第三年、第四年、第五年)之前检查数据是否存在

这不起作用:

if (dt.Rows[1][0].Count > 0)
        {
            SecondYear = dt.Rows[1][0].ToString();
        }

检查行数是否大于或等于要检查的年份行

if(dt.Rows.Count >= 1) 
   SecondYear = dt.Rows[1][0].ToString();

请尝试使用DataRowExtensions(或DataSetExtensions),而不是索引器,如下所示

var o1=dt.行[1]。字段(0);
或使用列名更可读:

var o2 = dt.Rows[1].Field<string>("columnName");
var o2=dt.Rows[1]。字段(“columnName”);
使用if(dt.Rows[1][0].Count>0)时,哪一行引发异常?是否是SecondYear=dt.Rows[1][0].ToString()?
var o1 = dt.Rows[1].Field<string>(0);
var o2 = dt.Rows[1].Field<string>("columnName");