SqlCommand cmd = new SqlCommand("select Number from temp where Notic=0", con);
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        try
        {
            
            if (dr.Read())
            {
                Number.Text = Number2.Text = Convert.ToString(DateTime.Now.Year + "(" + dr[0].ToString() + ")" + "号");
                            }
        }
        finally
        {
            dr.Close();
            con.Close();
        }我想实现的就是在查到Number的时候同时向数据库中更新Notic列的数值

解决方案 »

  1.   

    是用存储过程,或者同时执行两条sql
      

  2.   

    update 表名 set number = (select Number from temp where Notic=0)
    where  条件.一条sql语句是可以实现的.
      

  3.   

    如果我不用存储过程的话,我同时执行两条sql在sqlcommand中怎么写,好像这样写不行啊
      

  4.   

    update temp set Number=(select Number from temp where Notic=0) where Notic=0这样子对么?好像有问题吧
      

  5.   

    string sql="select *** from ** ;update ** set **=** where **";
      

  6.   

    SqlDataReader 中不能那样操作你可以一次执行两条SQL 一个查询一个修改。查询返回的结果集就是 修改前的
      

  7.   

    SqlCommand cmd = new SqlCommand("select Number from temp where Notic=0", con);
    =>
    SqlCommand cmd = new SqlCommand("select Number from temp where Notic=0;update temp set Notic=2 where Notic=0", con);
      

  8.   

    全修改是你where 条件的问题。update temp set Notic=2 where Notic=0 and ...加要更新行的主见值
      

  9.   

    SqlConnection con = SQLHelper.GetConnection();
            SqlCommand cmd = new SqlCommand("select Number from temp where Notic=0", con);
            SqlCommand cmd1 = new SqlCommand("",con);
            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            try
            {
                
                if (dr.Read())
                {
                   string update= dr[0].ToString();
                   cmd1.CommandText = "update temp set Notic=1 where Number=" ;
                   cmd1.CommandText += update;
                   Number.Text = Number2.Text = Convert.ToString(DateTime.Now.Year + "(" + dr[0].ToString() + ")" + "号");
                   //cmd1.ExecuteNonQuery();
                }
            }
            finally
            {
                dr.Close();
                con.Close();
            }string update= dr[0].ToString();
                   cmd1.CommandText = "update temp set Notic=1 where Number=" ;
                   cmd1.CommandText += update;
    这样子写对么?但是不知道怎么吧带有command的DataReader关闭
      

  10.   

    你不是开发人员吧?select Number from temp where Notic=0Notic 值在表中重复吗? 如果是的话上面的查询会出来多条记录,相应的修改也会更新多条记录。
      

  11.   

    给你说的方法是正确的,多条更新是有多条满足 Notic=0的记录。
      

  12.   

    哈哈 找到了方法了 代码贴出来 SqlCommand cmd1 = con.CreateCommand();
            cmd1.CommandText = "select Number from temp where Notic=0";
            con.Open();
            SqlDataReader dr = cmd1.ExecuteReader();
            try
            {
                if (dr.Read())
                {
                    Number.Text = Number2.Text = Convert.ToString(DateTime.Now.Year + "(" + dr[0].ToString() + ")" + "号");
                    SqlCommand cmd2 = con.CreateCommand();
                    cmd2.CommandText = "update temp set Notic=1 where Number=";
                    cmd2.CommandText += dr[0].ToString();
                    dr.Close();
                    SqlDataReader dr1 = cmd2.ExecuteReader();
                    try
                    {
                        if (dr1.Read())
                        {
                            cmd2.CommandText = "update temp set Nocit=1 where Number=";
                            cmd2.CommandText += dr[0].ToString();
                        }
                    }
                    finally
                    {
                        dr1.Close();
                    }
                }
            }
            finally
            {
                dr.Close();
                con.Close();
            }