急:为什么while内语句执行无结果?

时间:2021-02-04 22:51:28
protected void ButtonAssign_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection
    (System.Configuration.ConfigurationManager.ConnectionStrings["SWMSConnectionString"].ConnectionString);
            SqlCommand comm1 = new SqlCommand("SelectStudentId",conn);
            comm1.Parameters.AddWithValue("@intClassId",TextBox1.Text);
            comm1.CommandType = CommandType.StoredProcedure;
            conn.Open();
            SqlDataReader dr1 = comm1.ExecuteReader();
            while(dr1.Read())
            {
                string str = dr1["studentId"].ToString();
                SqlCommand comm2 = new SqlCommand("InsertDetail",conn);
                comm2.Parameters.AddWithValue("@intClassId", TextBox1.Text);
                comm2.Parameters.AddWithValue("@intTimes", TextBox2.Text);
                comm2.Parameters.AddWithValue("@strStudentId", str);
                comm2.Parameters.AddWithValue("@intHandon",0);
                comm2.Parameters.AddWithValue("@intCorrect",0);
                comm2.CommandType = CommandType.StoredProcedure;
                comm2.Dispose();
            }
            try
            {
                SqlDataSource2.Insert();
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('发布作业成功!');</script>");
            }
            catch
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加题目失败!');</script>");
            }
            dr1.Close();
            comm1.Dispose();
            conn.Close();
        }

6 个解决方案

#1


这种问题要想解决很简单。

在 while(...)上下断点(最左边点一下,出现一个红色的圆圈)。

然后按f5,再按f11,看代码怎么执行。

#2



//可能没查询出结果 判断下是否有数据dr1.HasRows 检查下存储过程
if (dr1.HasRows)
            {
                while (dr1.Read())
                { }
            }

#3


断点是解决的很好的办法……
这样直接看 偶表示看不出什么问题
也没办法帮你直接在我的电脑上测试

#4


灰常感谢大家的帮助,问题已解决。
while里只是把SqlCommand 对象写好了,并没有执行。

#5


引用楼主 d16123 的回复:
protected void ButtonAssign_Click(object sender, EventArgs e)
  {
  SqlConnection conn = new SqlConnection
  (System.Configuration.ConfigurationManager.ConnectionStrings["SWMSConnectionString"].Con……

+1

#6


引用 3 楼 terminator_lzq 的回复:
断点是解决的很好的办法……
这样直接看 偶表示看不出什么问题
也没办法帮你直接在我的电脑上测试

...........

#1


这种问题要想解决很简单。

在 while(...)上下断点(最左边点一下,出现一个红色的圆圈)。

然后按f5,再按f11,看代码怎么执行。

#2



//可能没查询出结果 判断下是否有数据dr1.HasRows 检查下存储过程
if (dr1.HasRows)
            {
                while (dr1.Read())
                { }
            }

#3


断点是解决的很好的办法……
这样直接看 偶表示看不出什么问题
也没办法帮你直接在我的电脑上测试

#4


灰常感谢大家的帮助,问题已解决。
while里只是把SqlCommand 对象写好了,并没有执行。

#5


引用楼主 d16123 的回复:
protected void ButtonAssign_Click(object sender, EventArgs e)
  {
  SqlConnection conn = new SqlConnection
  (System.Configuration.ConfigurationManager.ConnectionStrings["SWMSConnectionString"].Con……

+1

#6


引用 3 楼 terminator_lzq 的回复:
断点是解决的很好的办法……
这样直接看 偶表示看不出什么问题
也没办法帮你直接在我的电脑上测试

...........