日期:2014-05-18 浏览次数:21118 次
string pno= this.dgvPrj.CurrentRow.Cells[0].Value.ToString(); messagebox.show(pno);//测试一下是否条件为空,导致查询的数据为空 DataSet myds = datacon.getds("select PrjNo,Description, Respon,"+ "Dept, StartDate,EndDate, Stations,"+ "EES1, EES21, EES22,EES34,EES5," + "PrjMgmt, Total from ProjectOverview where PrjNo='"+pno+"'" , "ProjectOverview"); prjNoTextBox.Text = myds.Tables["ProjectOverview"].Rows[0].ItemArray[0].toString();
------解决方案--------------------
先判断myds.Tables["ProjectOverview"].Rows.Count是不是为0;
------解决方案--------------------
prjNoTextBox.Text = Convert.ToString(myds.Tables["ProjectOverview"].Rows[0].ItemArray[0]);
这一局错误了
ItemArray是一个属性,返回的是一个数组,应该赋值给一个数组,而且他也没有提供下标的访问
所以你的使用是错误的,下列方法可以帮助你
ds.Tables[0].Rows[0]["姓名"];返回第一行的列名是“姓名”的字段值
ds.Tables[0].Rows[0][0]返回第一行第一列的值
------解决方案--------------------
DataSet myds = datacon.getds("select ......
红色标记的是你自己写的填充方法吗?
string pno= this.dgvPrj.CurrentRow.Cells[0].Value.ToString(); messagebox.show(pno); DataTable mydt = new DataTable(); SqlDataApdater da=new SqlDataApdater("select PrjNo,Description, Respon,"+ "Dept, StartDate,EndDate, Stations,"+ "EES1, EES21, EES22,EES34,EES5," + "PrjMgmt, Total from ProjectOverview where PrjNo='"+pno+"'" ,conn); da.fill(mydt); if(dt.rows.count>0) { prjNoTextBox.Text = mydt.Rows[0].ItemArray[0].toString(); }
------解决方案--------------------
int i=myds.Tables["ProjectOverview"].Rows.count;
看是否有数据条数
------解决方案--------------------
看看你的数据库是不是没有数据啊,我想一定是没有数据,要不不可能出现这个问题的,去看看人的数据库吧。
------解决方案--------------------
string pno= this.dgvPrj.CurrentRow.Cells[0].Value.ToString(); //messagebox.show(pno); DataTable mydt = new DataTable(); SqlDataApdater da=new SqlDataApdater("select PrjNo,Description, Respon,"+ "Dept, StartDate,EndDate, Stations,"+ "EES1, EES21, EES22,EES34,EES5," + "PrjMgmt, Total from ProjectOverview where PrjNo='"+pno+"'" ,conn); da.fill(mydt); if(dt.rows.count>0) { prjNoTextBox.Text = mydt.Rows[0].ItemArray[0].toString(); } //那你用这个试试,是否为空,如果mydt不为空,则是你返回的table为空