在位置-1处没有任何行

时间:2021-03-06 10:49:57
for (int i = 0; i < ds.Tables["门诊shoufei"].Rows.Count;i++ )
                    {
                        if (textBox1.Text == ds.Tables["门诊shoufei"].Rows[i]["编号"].ToString())
                        {
                            no = i;
                            break;
                        }
                    }
                    textBox2.Text = ds.Tables["门诊shoufei"].Rows[no]["姓名"].ToString();
                    textBox3.Text = ds.Tables["门诊shoufei"].Rows[no]["性别"].ToString();
                    textBox4.Text = ds.Tables["门诊shoufei"].Rows[no]["科室"].ToString();
                    textBox5.Text = ds.Tables["门诊shoufei"].Rows[no]["年龄"].ToString();
                    textBox6.Text = ds.Tables["门诊shoufei"].Rows[no]["应收费"].ToString();
                    textBox7.Text = ds.Tables["门诊shoufei"].Rows[no]["项目1"].ToString();
                    textBox8.Text = ds.Tables["门诊shoufei"].Rows[no]["项目2"].ToString();
                    textBox9.Text = ds.Tables["门诊shoufei"].Rows[no]["项目3"].ToString();
                    textBox10.Text = ds.Tables["门诊shoufei"].Rows[no]["项目4"].ToString();
                    textBox11.Text = ds.Tables["门诊shoufei"].Rows[no]["时间"].ToString();
 myconn.Close();
运行提示“在位置-1处没有任何行”,
哪里出错了?

10 个解决方案

#1


很明显没有执行if里面的语句,没有对no进行赋值

#2


你先说下是哪一行出错?

可能是Table或字段不存在

#3


你想实现什么功能

你这段代码逻辑上有问题 如果if语句一直不成立 则no=?

#4


断点吧

#5


if (textBox1.Text == ds.Tables["门诊shoufei"].Rows[i]["编号"].ToString())
{
no = i;
break;
}

没执行。
no 没赋值,所以是 -1 ;

把下面的 Textbox.Text 赋值 语句 放到 no 赋值语句之后好些。
TextBox.text 赋值后 再 break;

#6


如果放 if 里了 就 直接 用  i 连 no 都不用了。
textBox2.Text = ds.Tables["门诊shoufei"].Rows[i]["姓名"].ToString();

#7


if条件不符语句块里代码没有执行...

在外面判断一下no不为-1,再进行下面赋值语句...

#8


哦,忘说了,在前面定义了no=-1了

#9


所以不对噻

#10


把那堆赋值全部放到if里面...
-----------------------
      CSDN 论坛助手 
  http://china-csdn.cn

#1


很明显没有执行if里面的语句,没有对no进行赋值

#2


你先说下是哪一行出错?

可能是Table或字段不存在

#3


你想实现什么功能

你这段代码逻辑上有问题 如果if语句一直不成立 则no=?

#4


断点吧

#5


if (textBox1.Text == ds.Tables["门诊shoufei"].Rows[i]["编号"].ToString())
{
no = i;
break;
}

没执行。
no 没赋值,所以是 -1 ;

把下面的 Textbox.Text 赋值 语句 放到 no 赋值语句之后好些。
TextBox.text 赋值后 再 break;

#6


如果放 if 里了 就 直接 用  i 连 no 都不用了。
textBox2.Text = ds.Tables["门诊shoufei"].Rows[i]["姓名"].ToString();

#7


if条件不符语句块里代码没有执行...

在外面判断一下no不为-1,再进行下面赋值语句...

#8


哦,忘说了,在前面定义了no=-1了

#9


所以不对噻

#10


把那堆赋值全部放到if里面...
-----------------------
      CSDN 论坛助手 
  http://china-csdn.cn