尝试访问表行,但它变为IndexOutOfRangeException数据库只有一个表和2行
SqlConnection ^ conDatabase =
gcnew SqlConnection(L"Data Source=(LocalDB)\v11.0;AttachDbFileName='C:/Users/pcusername/Documents/Visual Studio 2010/Projects/nv/nv/project/project/vn.mdf';Integrated Security='True'");
SqlCommand ^ cmdDatabase =
gcnew SqlCommand(L"SELECT * FROM Table;", conDatabase);
dataSet1 = gcnew DataSet("Table");
SqlDataAdapter ^ sda = gcnew SqlDataAdapter();
sda->SelectCommand = cmdDatabase;
dataSet1->Tables;
DataRow ^ recEmployee = dataSet1->Tables[1]->Rows[0];/*System.IndexOutOfRangeException*/
答案 0 :(得分:1)
尝试:
DataRow ^ recEmployee = dataSet1->Tables[0]->Rows[0];
由于c ++基于零索引,因此第一个表将位于索引零处,而不是一个。在尝试检索表和行之前检查表和行是否也是一个好主意。确保您实际从数据库中获得任何结果。如果你没有得到任何东西,它可能是你的sql语句中的分号。有些连接不允许在你的SQL中使用半冒号。
答案 1 :(得分:0)
C ++集合从零开始,因此您应该使用Tables[0]
返回第一个表,而不是Tables[1]