C# 执行查询语句报错There is no row at position 1.
string SQLZ = "SELECT PROCESS_ID,PDLINE_ID,MACHINE_ID,SHIFT_ID,WORK_DATE FROM TEST_B WHERE MANHOUR_ID = '"+manhour_id+"' AND ENABLED='Y'";
DataTable dsTemp_S1 = DBhelp.ExecuteSQL(SQLZ).Tables[0];
不是这句报错吧。。你这个只是取返回的Table,没有和数据行相关。。报这个错应该是你使用的返回表格的Rows属性时报错,Table没有数据行或者只有1行导致的错误
如没有数据或者只有1行,直接dsTemp_S1.Rows[1][0].ToString()获取数据就是报的这个错误
不是这句报错吧。。你这个只是取返回的Table,没有和数据行相关。。报这个错应该是你使用的返回表格的Rows属性时报错,Table没有数据行或者只有1行导致的错误
明显是返回的datatable没内容。
是取返回的Table,没有和数据行相关
楼上说得对,这个不是报错。这条提示信息要你给出position 1的相应的数据,如果这里没数据,那就会出现这个常态性的警示信息。
可以试试用dataGrid控件,自动绑定,多简单?搞清楚了,再自己写自定义的表,不就简单多了。
这是我用dataGrid控件和sqlServer绑定的一个实例,1W4行的数据,也能秒差,性能还是可以的。
使用dataGrid,实现与数据库的数据绑定,显示
public void display()
{
url = "server=.;database='register';uid='sa';pwd='sa'";
connect = new SqlConnection(url);
connect.Open();
comboboxtext = comboBox1.Text;//选择表
command = "select * from " + comboboxtext;
adapter = new SqlDataAdapter(command, connect);//
tables = new DataSet();
adapter.Fill(tables, comboboxtext);//在dataset中添加行
dataGridView1.DataSource = tables;//获取显示数据的数据源
dataGridView1.DataMember = comboboxtext;//显示数据列、表名称
connect.Close();
}
调试的时候看下这个sql具体内容是什么,复制下来,手动执行这条sql,看看是否有记录返回呢
如果数据集是dataset ,先判断dataset中的表数量是否大于0
如果大于0
再判断table
行数据要判断是否为空