想要更新数据库中的所有行 [英] wants to Update All rows from Database

查看:86
本文介绍了想要更新数据库中的所有行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码运行正常..但只有第一行正在从数据库更新我希望在页面加载时更新数据库中的所有行...请帮助我先生,在此先感谢:)









This code is run properly ..but only first row is updating from database i want to update all the rows from database while page load..Please help me sir ,Thanks in Advance :)




protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Binddays();
        }
    }


public void Binddays()
    {

        con.Open();

        OleDbDataAdapter da = new OleDbDataAdapter("Select * from SlideShowTable", con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            Stratd = dt.Rows[0][11].ToString();
            Endd = dt.Rows[0][12].ToString();
            int Totaldays = duration(Stratd, Endd);
            int Totaldayss = durationn(System.DateTime.Now.ToString("MM/dd/yyyy"), Endd);

            string str = Convert.ToString(Totaldays);
            string str1 = Convert.ToString(Totaldayss);


            OleDbCommand cmd123 = new OleDbCommand("UPDATE SlideShowTable SET Total_Days='" + str + "',Days_remain='" + str1 + "'", con);

            cmd123.ExecuteNonQuery();



        }
    }
    public int duration(string startdate, string enddate)
    {
        DateTime dt1 = DateTime.Parse(Convert.ToDateTime(Stratd).ToString("MM/dd/yyyy"));
        DateTime dt2 = DateTime.Parse(Convert.ToDateTime(Endd).ToString("MM/dd/yyyy"));
        TimeSpan ts = dt2.Subtract(dt1);
        int days = ts.Days;
        return days;
    }
    public int durationn(string startdate, string enddate)
    {
        DateTime dtt1 = DateTime.Parse(System.DateTime.Now.ToString("MM/dd/yyyy"));
        DateTime dtt2 = DateTime.Parse(Convert.ToDateTime(Endd).ToString("MM/dd/yyyy"));
        TimeSpan tss = dtt2.Subtract(dtt1);
        int dayss = tss.Days;
        return dayss;
    }

推荐答案

请为此使用for循环。请参阅下面的代码 -

Please use "for" loop for this. Refer below code-
if (dt.Rows.Count > 0)
       {
         for (i=0; i<=dt.Rows.Count;i++)
          {
               Stratd = dt.Rows[i][11].ToString();
               Endd = dt.Rows[i][12].ToString();
               int Totaldays = duration(Stratd, Endd);
               int Totaldayss = durationn(System.DateTime.Now.ToString("MM/dd/yyyy"), Endd);
               string str = Convert.ToString(Totaldays);
               string str1 = Convert.ToString(Totaldayss);
               OleDbCommand cmd123 = new OleDbCommand("UPDATE SlideShowTable SET Total_Days='" + str + "',Days_remain='" + str1 + "'", con);
               cmd123.ExecuteNonQuery();
           }
       }


int iRowCount = dt.Rows.Count;
string strPK;                             // string to store Primary Key
if ( iRowCount > 0)
{
      for(int intI=0; intI< iRowCount;intI++)
      {
           Stratd = dt.Rows[intI][11].ToString();
           Endd = dt.Rows[intI][12].ToString();
           strPK= dt.Rows[intI][x].ToString();  // where x is the Primary key column no.
           int Totaldays = duration(Stratd, Endd);
           int Totaldayss = durationn(System.DateTime.Now.ToString("MM/dd/yyyy"), Endd);
 
           string str = Convert.ToString(Totaldays);
           string str1 = Convert.ToString(Totaldayss);
 
 // replace your query with Update SlideShowTable SET Total_Days=''" + str + "'',Days_remain=''" + str1 + "'' WHERE Primary_Key=''"+ strPK + "''" 
           OleDbCommand cmd123 = new OleDbCommand("UPDATE SlideShowTable SET Total_Days=''" + str + "'',Days_remain=''" + str1 + "''" , con);
 
            cmd123.ExecuteNonQuery();
            }
        }



希望这会有所帮助:)


Hope this helps :)


这篇关于想要更新数据库中的所有行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆