领悟旧事

学习,领悟

Asp.net通过OleDbDataAdapter来新增、更新Access数据库
作者:lmq时间:2017-3-28

        /// <summary>

        /// 根据文件的ID来更新点击。

        /// </summary>

        protected void ArticleHits()

        {

            String PoemID = Request["id"];//从参数中接收文章ID;

            if (PoemID == null) return;//参数不存在,返回。

            int iHits;//点击

            OleDbConnection dbconn = XianShiWen.MyClass.getConn("UserInfo.mdb"); //数据库连接

            OleDbDataAdapter da;

            String chaxun = "SELECT * FROM [ArticleHits] where ([ArticleID] = '" + PoemID + "') ";//根据ID查询文件。

            dbconn.Open();

            da = new OleDbDataAdapter(chaxun, dbconn);//引用数据库连接dbconn并依据SQL语

            DataSet ds = new DataSet(); //创建DataSet对象            

            da.Fill(ds); //用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象。

            if (ds.Tables[0].Rows.Count ==1)//如果查到(因为ID是唯一的),

            {

                iHits = int.Parse(ds.Tables[0].Rows[0]["Hits"].ToString()) + 1; //获取原来点击量,并加1;

                da = new OleDbDataAdapter(chaxun, dbconn);//再建一张更新表。

                //建立起更新命令,根据实践,此处用Select和Updat,效果一样。

                //下句等同于da.UpdateCommand = new OleDbCommand("Update * FROM [ArticleHits] where ([ArticleID] = '" + PoemID + "') ", dbconn);

                da.UpdateCommand = new OleDbCommand("Select * FROM [ArticleHits] where ([ArticleID] = '" + PoemID + "') ", dbconn);

                OleDbDataAdapter da2;                

                da2 = new OleDbDataAdapter(chaxun, dbconn);//引用数据库连接dbconn并依据SQL语   

                da2.SelectCommand = new OleDbCommand(chaxun, dbconn);

                DataSet ds2 = new DataSet(); //创建DataSet对象

                OleDbCommandBuilder cb = new OleDbCommandBuilder(da2);

                da2.Fill(ds2, "hits");

                //下句要注意:ds2.Tables["hits"].Rows[0][0]是字段本身(即ID=326);ds2.Tables["hits"].Rows[0][1],会把326更新为iHits;ds2.Tables["hits"].Rows[0][2]则更新结果。

                ds2.Tables["hits"].Rows[0][2] = iHits.ToString();

                da2.Update(ds2.Tables["hits"]);              

            }

            else

            {//如果没有查到,就增加一条纪录。

                string insertstr = "INSERT INTO ArticleHits (ArticleID, Hits) VALUES ('" + PoemID + "', '1')";                

                OleDbCommand insertcmd = new OleDbCommand(insertstr, dbconn);

                insertcmd.ExecuteNonQuery();                

            }

            dbconn.Close();

        }

    文章是用到一个类,代码如下:

        /// <summary>

        /// 连接一个数据库。

        /// </summary>

        /// <param name="DataName">指明所连接的数据库文件名,如GuShiWen.mdb。</param>

        /// <returns>连接数据库的类。</returns>

        public static OleDbConnection getConn(String DataName)

        {

            string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\"+DataName+";Persist Security Info=False"; 

            OleDbConnection tempconn = new OleDbConnection(connstr);

            return (tempconn);

        }

0
下篇:Asp.net验证控件Re...
您的留言是我初心不改的情感之源!>

暂时没有评论
 访问量:508059
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2