sqlite 项目实例

        private string url = "http://gw.api.taobao.com/router/rest";
        private string appkey ="12198044"; //"12299799";//"12130006";
        private string appsecret = "40f6ceced642c41186ad7ccba28fa227";// "afa50ecbf3c01f7073dc09ab99b6db4c";//"6e254a97e30b0ae04eb31b21c7a24b6b";

        //单击事件
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            //GetItemsOnsale2();
            Service_Api_TaoBao_Itemcats();
        }

        private DataTable dtcatelog2; //绑定数据源
        private DataRow dtcatelog;
        private DataTable dtcatelogs;
        private DataTable dtcatelogs2;

        /// <summary>
        /// 获取商家标准类目 添加至 指定的事情
        /// </summary>
        private void Service_Api_TaoBao_Itemcats()
        {
            client = new DefaultTopClient(url, appkey, appsecret, "json");
            dtcatelogs = null;
            dtcatelogs2 = null;
            dtcatelog2 = null;
            dtcatelog = null;
            DirSearchDt("0");
            if (dtcatelogs2 != null)
            {
                this.vGridControl1.DataSource = dtcatelogs2;
                GetDirSearch(dtcatelogs2);
            }
        }

        /// <summary>
        /// API 获取商家标准类目
        /// </summary>
        /// <param name="parentid"></param>
        private void DirSearchDt(string parentid)
        {
            try
            {
                ItemcatsGetRequest req = new ItemcatsGetRequest();
                req.Fields = "cid,parent_cid,is_parent,status,sort_order,name";
                req.ParentCid = Convert.ToInt32(parentid);
                ItemcatsGetResponse props = client.Execute(req);
                if (props.IsError) return;

                if (dtcatelog != null && dtcatelogs!=null) dtcatelogs.Rows.Remove(dtcatelog);
                if (dtcatelog2 != null && dtcatelog2.Rows.Count>0)
                { 
                    foreach( DataRow deleteItem in dtcatelog2.Rows)
                    {
                        dtcatelogs.Rows.Remove(deleteItem);
                    }
                    dtcatelog2.Rows.Clear();
                }

                DataTable dt = ToDataSet(props.Body).Tables["item_cat"];

                if (dt != null)
                {
                    if (dtcatelogs == null)
                        dtcatelogs = dt.Clone();
                    if (dtcatelogs2 == null)
                        dtcatelogs2 = dt.Clone();
                    dtcatelogs.Merge(dt, true, MissingSchemaAction.Ignore);
                    dtcatelogs2.Merge(dt, true, MissingSchemaAction.Ignore);
                }


                DataRow itemData = dtcatelogs.Rows[0];
                if (Convert.ToBoolean(itemData["IS_PARENT"]))
                {
                    dtcatelog = itemData;
                    DirSearchDt(itemData["CID"].ToString());
                }
                else
                {
                    dtcatelogs.Rows.Remove(itemData);
                    for (int i = 1; i <= dtcatelogs.Rows.Count; i++)
                    {
                        if (Convert.ToBoolean(dtcatelogs.Rows[0]["IS_PARENT"]) && dtcatelogs.Rows[0]["CID"].ToString() != "0")
                        {
                            dtcatelog = dtcatelogs.Rows[0];
                            DirSearchDt(dtcatelogs.Rows[0]["CID"].ToString());
                        }
                        else
                        {
                            dtcatelogs.Rows.Remove(dtcatelogs.Rows[0]);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string error = ex.Message;
            }
               
        }

          
        /// <summary>
        /// 添加到 SQLite文件
        /// </summary>
        /// <param name="dt">商家标准类目 集合</param>
        private void GetDirSearch(DataTable dt)
        {
            bool suc = false;
            string sourceUrl="data source=D:\\DB\\CatelogDataBase.db";
            if (string.IsNullOrEmpty(sourceUrl))
            {
                //配置错误
            }
            else
            {
                string[] arrary = sourceUrl.Split('=');
                if (System.IO.File.Exists(arrary[1]))
                {
                    //文件不存在
                }
            }
            using (DbConnection conn = new SQLiteConnection(sourceUrl))
            {
                conn.Open();

                using (DbTransaction dbTrans = conn.BeginTransaction())
                {
                    using (DbCommand comm = conn.CreateCommand())
                    {
                        try
                        {

                            comm.CommandText = "select CID, PARENT_CID,IS_PARENT,STATUS,SORT_ORDER,NAME1 as NAME,OWNERID,MODIFIERID,IS_ACTIVE, TYPE,ID from tb_catelog";
                            comm.CommandType = CommandType.Text;
                            using (IDataReader reader = comm.ExecuteReader())
                            {
                                if (reader.Read()) //存在
                                {
                                    suc = true;
                                }
                            }

                            if (suc)
                            {
                                comm.CommandText = "DELETE FROM tb_catelog";
                                int icount = comm.ExecuteNonQuery();
                            }
                            //comm.CommandText = "insert into tb_catelog(CID, PARENT_CID,IS_PARENT,STATUS,SORT_ORDER,NAME1,OWNERID,MODIFIERID,IS_ACTIVE, TYPE) values(@CID, @PARENT_CID,@IS_PARENT,@STATUS,@SORT_ORDER,@NAME1,@OWNERID,@MODIFIERID,@IS_ACTIVE, @TYPE)";
                            comm.CommandText = "insert into tb_catelog(CID,IS_PARENT,NAME1, PARENT_CID,SORT_ORDER,STATUS,OWNERID,MODIFIERID,IS_ACTIVE, TYPE) values(?,?,?,?,?,?,?,?,?,?)";
                            DbParameter Field1 = null;
                            DataRow dr = null;
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                comm.Parameters.Clear();
                                dr = dt.Rows[i];
                                for (int j = 0; j < dt.Columns.Count; j++)
                                {
                                    Field1 = comm.CreateParameter();
                                    Field1.Value = dr[j];
                                    comm.Parameters.Add(Field1);
                                    //Field1 = null;
                                }
                                for (int k = 0; k <= 3; k++)
                                {
                                    Field1 = comm.CreateParameter();
                                    if (k == 2)
                                    {
                                        Field1.Value = true;
                                    }
                                    else
                                    {
                                        Field1.Value = "burgeon";
                                    }
                                    comm.Parameters.Add(Field1);
                                }
                                comm.ExecuteNonQuery();

                            }

                            dbTrans.Commit();
                        }
                        catch
                        {
                            dbTrans.Rollback();
                        }

                    }

                }

            }

        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android连接SQLite源代码项目需要以下几个步骤: 1. 创建一个新的Android项目。可以在Android Studio中选择创建一个新的空白项目。在项目的build.gradle文件中添加SQLite的依赖项。 2. 在src/main/java目录中创建一个新的Java类,用于实现SQLite数据库连接和操作。可以命名为DatabaseHelper。在该类中,需要继承SQLiteOpenHelper类,并实现其构造方法、onCreate()和onUpgrade()等方法。 3. 在onCreate()方法中,可以通过调用getWritableDatabase()方法创建或打开一个SQLite数据库。在该方法中可以定义表格结构,并执行创建表格的SQL语句。 4. 在onUpgrade()方法中,可以处理数据库版本更新的逻辑。可以通过检查旧版本号和新版本号的差异来判断数据库结构是否需要更新,并执行相应的升级操作。 5. 在需要使用数据库的Activity或Fragment中,创建DatabaseHelper的实例。通过调用getWritableDatabase()方法获得可写数据库的引用,或者调用getReadableDatabase()方法获得可读数据库的引用。可以使用这些数据库引用进行数据的插入、查询、更新和删除等操作。 6. 为了保持数据库操作的封装性和可复用性,可以在DatabaseHelper中定义一些公共的方法,如insertData()、queryData()、updateData()和deleteData()等方法,用于执行常见的数据库操作。 7. 在项目的AndroidManifest.xml文件中,添加数据库访问所需的权限,如"android.permission.WRITE_EXTERNAL_STORAGE"和"android.permission.READ_EXTERNAL_STORAGE"等权限。 以上是连接SQLite的大致步骤,开发者可以根据具体项目的需求进行相应的调整和扩展。SQLite是一种轻量级的数据库引擎,它在Android开发中被广泛应用,能够提供可靠的本地数据存储和查询功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值