コード例 #1
0
        void GetData()
        {
            caopanel = Screen.PrimaryScreen.Bounds.Height - 80;//Caopanel = chieu cao cua man hinh-80
            dstree   = DBEngine.execReturnDataTable("LoadCompanyTree", "@LoginID", 3);
            //Dem so cap cong ty
            int levelcount = ((from DataRow dr in dstree.Rows select Convert.ToInt32(dr["ControlLevel"])).Distinct().ToList()).Count();

            if (120 * levelcount > caopanel)//Neu do phan giai man hinh qua thap se lay chieu cao 1 cap bang 120
            {
                caomotcap = 120;
            }
            else//nguoc lai lay chieu cao mot cap bang caopanel/so cap
            {
                caomotcap = caopanel / levelcount;
            }
            LevelMax = ((from DataRow dr in dstree.Rows select Convert.ToInt32(dr["ControlLevel"])).Distinct().ToList()).Last();
        }
コード例 #2
0
        private void MakeUpdateQuery(DataRow dr, string TableName)
        {
            DataTable     m_dtPrimaryKeys = DBEngine.execReturnDataTable("sp_TableEditor_GetPrimaryKeys", "@Tablename", TableName);
            SqlConnection CN        = new SqlConnection(DBEngine.ConnectionString);
            string        strRetVal = "";
            string        query     = string.Format("Update {0} set ", TableName);
            string        strSet    = "";
            string        strWhere  = " where ";
            bool          isKeys    = false;

            for (int i = 0; i < dr.Table.Columns.Count; i++)
            {
                //Loai bo keys
                foreach (DataRow drPri in m_dtPrimaryKeys.Rows)
                {
                    if (drPri[0].ToString().Equals(dr.Table.Columns[i].Caption))
                    {
                        isKeys = true;
                        break;
                    }
                }
                if (isKeys)
                {
                    isKeys = false;
                    continue;
                }
                //update only column belong to original table not belong to view
                if (isColumnOfTable(dr.Table.Columns[i].Caption, TableName))
                {
                    if (dr[dr.Table.Columns[i].Caption, DataRowVersion.Original].ToString() != dr[dr.Table.Columns[i].Caption].ToString())
                    {
                        strSet += String.Format("[{0}] = @{0},", dr.Table.Columns[i].Caption);
                    }
                }
            }

            if (strSet.Length > 1)
            {
                isNoUpdate = false;
                strSet     = strSet.Substring(0, strSet.Length - 1) + " ";
            }
            else
            {
                isNoUpdate = true;
                return;
            }
            // Where statement
            foreach (DataRow drPri in m_dtPrimaryKeys.Rows)
            {
                strWhere += String.Format("[{0}] = @{0} and ", drPri[0]);
            }
            strWhere  = strWhere.Substring(0, strWhere.Length - 4);
            strRetVal = query + strSet + strWhere;
            SqlCommand SqlCom = new SqlCommand(strRetVal, CN);

            for (int i = 0; i < dr.Table.Columns.Count; i++)
            {
                if (isColumnOfTable(dr.Table.Columns[i].Caption, TableName))
                {
                    if (dr[dr.Table.Columns[i].Caption, DataRowVersion.Original].ToString() != dr[dr.Table.Columns[i].Caption].ToString() || m_dtPrimaryKeys.Select(string.Format("Name = '{0}'", dr.Table.Columns[i].Caption)).Length > 0)
                    {
                        SqlParameter paramAdd = new SqlParameter("@" + dr.Table.Columns[i].Caption, dr[i]);
                        switch (dr.Table.Columns[i].DataType.Name.ToLower())
                        {
                        case "image":
                        case "byte[]":
                        case "varbinary":
                        case "binary":
                            paramAdd.DbType = DbType.Binary;
                            break;

                        default:
                            break;
                        }
                        //strValues += "N'" + getValidValue(dr, i) + "',";//;dr[i].ToString()
                        SqlCom.Parameters.Add(paramAdd);
                    }
                }
            }
            CN.Open();
            SqlCom.ExecuteNonQuery();
            CN.Close();
        }