C# 在c中找不到ExecuteDataSet的表0#

C# 在c中找不到ExecuteDataSet的表0#,c#,C#,我对这件事破例了 DataTable ProbRead = SQLData.ExecuteDataSet("SELECT description FROM chk_maintenance_probremark where subheaderid = " + lblrefno.Text.ToString() + " and Type='Problem'").Tables[0]; System.IndexOutOfRangeException:找不到表0 您的sql查询似乎没有结果 试试这个 va

我对这件事破例了

DataTable ProbRead = SQLData.ExecuteDataSet("SELECT description FROM chk_maintenance_probremark where subheaderid = " + lblrefno.Text.ToString() + " and Type='Problem'").Tables[0];
System.IndexOutOfRangeException:找不到表0


您的sql查询似乎没有结果 试试这个

var probRead = SQLData.ExecuteDataSet("SELECT description FROM chk_maintenance_probremark where subheaderid = " + lblrefno.Text.ToString() + " and Type='Problem'");
if(probRead.Tables.Count > 0)
{
  var myTable = probRead.Tables[0];
 // do some stuff
}
使查询可读:

您将清楚地看到这个问题:
lblrefno.Text.ToString()
应该用
包装

如果返回了任何数据,请不要忘记测试:

var probRead = SQLData.ExecuteDataSet(sql);

if (probRead.Tables.Count > 0) {
  // It's safe now to call probRead.Tables[0]
  ...
} 

容易的。您没有表[0]。可能需要在
“+lblrefno.Text.ToString()+”
前后添加
,具体取决于
子标题ID的类型。这是不使用参数化方法的问题之一queries@Pikoh我知道了。。谢谢你的帮助。
var probRead = SQLData.ExecuteDataSet(sql);

if (probRead.Tables.Count > 0) {
  // It's safe now to call probRead.Tables[0]
  ...
}