⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.cs

📁 oracle dal gen,生成.NET ORACLE DAL层代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

//using System.Data.OracleClient;
using System.Reflection;

using OracleDALGen.Classes;
using OracleDALGen.Classes.Database;
using OracleDALGen.Classes.Generator;
using OracleDALGen.Classes.TestObject;
using DAL;
using Oracle.DataAccess.Client;

namespace OracleDALGenGUI
{
    public partial class frmMain : Form
    {
        private OraConnection connection;

        public frmMain()
        {
            InitializeComponent();

            connection = new OraConnection("test", "192.168.0.135", 1521, "ORCL", "arild", "arild"); 
        }

        private void btnListColumns_Click(object sender, EventArgs e)
        {
            try
            {
                connection = new OraConnection("test", txtHost.Text, 1521, txtServiceName.Text, txtUsername.Text, txtPassword.Text);

                if (rbTable.Checked)
                {
                    CodeGenerator cg = new CodeGenerator(txtSQL.Text, "DAL", rbTable.Checked, cbSaveAsFiles.Checked, connection);
                    txtCode.Text = cg.Generate(txtSQL.Text, true, cbGeneratePkg.Checked, txtOutputDir.Text);
                }
                else
                {
                    CodeGenerator cg = new CodeGenerator(txtSQL.Text, "DAL", rbTable.Checked, cbSaveAsFiles.Checked, connection);
                    txtCode.Text = cg.Generate("TestClass", false, false, txtOutputDir.Text);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace);
            }
        }

        private void btnCheckClass_Click(object sender, EventArgs e)
        {
            txtCode.Text = "";

            LoadCompositeKey();
            //LoadColumnsInfo("TEST_OBJECT");

            /*
            int? id = SaveData();
            LoadData(id);
            DeleteData(id);
             */
        }

        private void LoadCompositeKey()
        {
            DatabaseLoader dl = new DatabaseLoader();
            CompositeKey ck = new CompositeKey();
            ck.Id = 3;
            ck.Name = "c";
            ck.Description = "test3";

            CompositeKey ck2 = dl.Save<CompositeKey>(ck, connection);

            IList<CompositeKey> list = dl.LoadAll<CompositeKey>(connection);

            foreach (CompositeKey c in list)
            {
                txtCode.Text += c.Id + " " + c.Name + " " + c.Description + "\n";
            }
        }

        private void LoadColumnsInfo(string tableName)
        {
            DatabaseLoader dl = new DatabaseLoader();
            IList<ColumnInfo> cols = dl.LoadAll<ColumnInfo>(new Param[] { new Param("TABLE_NAME", tableName) }, connection);
        }

        private bool DeleteData(int? id)
        {
            DateTime start = DateTime.Now;

            DatabaseLoader dl = new DatabaseLoader();
            if (dl.DeleteSingle<TestObject>(new Param[] { new Param("ID", id.Value) }, connection))
            {
                TimeSpan ts = DateTime.Now - start;
                Console.WriteLine("Deleted object in: " + ts.TotalMilliseconds);

                return true;
            }
            else
            {
                Console.WriteLine("Failed to delete data.");

                return false;
            }
        }

        private int? SaveData()
        {
            DatabaseLoader dl = new DatabaseLoader();

            DateTime startTimeSave = DateTime.Now;
            TestObject to = new TestObject(null, "arild");
            to.ChildObject = new ChildObject(null, "child_object");
            to.ListObjects.Add(new ListObject(null, "ListObject1"));
            to.ListObjects.Add(new ListObject(null, "ListObject2"));
            to.ListObjects.Add(new ListObject(null, "ListObject3"));
            to.ListObjects.Add(new ListObject(null, "ListObject4"));
            to.ListObjects.Add(new ListObject(null, "ListObject5"));

            to = dl.Save(to, connection);

            TimeSpan ts = DateTime.Now - startTimeSave;
            Console.WriteLine("Save time: " + ts.TotalMilliseconds);

            return Convert.ToInt32(to.Id);
        }

        private void LoadData(int? id)
        {
            DatabaseLoader dl = new DatabaseLoader();

            DateTime startTime = DateTime.Now;
            IList<TestObject> list = new List<TestObject>();
            if (id == null)
                list = dl.LoadAll<TestObject>(connection);
            else 
                list.Add(dl.LoadSingle<TestObject>(new Param[] { new Param("ID", id.Value) }, connection));

            TimeSpan ts = DateTime.Now - startTime;
            Console.WriteLine("Total load time: " + ts.TotalMilliseconds);

            foreach (TestObject o in list)
                PrintTestObject(o);
        }

        private void PrintTestObject(TestObject o)
        {
            if (o.ChildObject == null)
                txtCode.Text += o.Id + " - " + o.Name + " - NULL \n";
            else
                txtCode.Text += o.Id + " - " + o.Name + " - " + o.ChildObject.Id.ToString() + "\n";

            if (o.ListObjects != null)
            {
                foreach (ListObject lo in o.ListObjects)
                {
                    txtCode.Text += "\t" + lo.Id + " - " + lo.Name + "\n";

                    /*
                    foreach (ListListObject li in lo.ListListObjects)
                    {
                        txtCode.Text += "\t\t" + li.Id + " - " + li.Name + "\n";
                    }
                     */
                }
            }
        }

        private void btnChangeConn_Click(object sender, EventArgs e)
        {
            connection = new OraConnection("test", txtHost.Text, 1521, txtServiceName.Text, txtUsername.Text, txtPassword.Text); 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DBSetup dbs = new DBSetup(connection);

            lblPLStatus.Text = dbs.CheckPLGenPackage();
            lblViewStatus.Text = dbs.CheckTableInfoView();
        }

        private void btnInstallPLGen_Click(object sender, EventArgs e)
        {
            DBSetup dbs = new DBSetup(connection);

            dbs.InstallPLGenPackage();
            lblPLStatus.Text = dbs.CheckPLGenPackage();
            lblViewStatus.Text = dbs.CheckTableInfoView();            
        }

        private void btnRegisterNotification_Click(object sender, EventArgs e)
        {
            DatabaseLoader dl = new DatabaseLoader();
            dl.ObjectChanged += new ObjectChangedDelegate(dl_ObjectChanged);
            dl.RegisterNotification<ChildObject>(connection);
        }

        void dl_ObjectChanged(object sender, OracleNotificationEventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            for(int i = 0; i < e.Details.Columns.Count; i++) 
            {
                sb.Append(e.Details.Columns[i].ColumnName + ": " + Convert.ToString(e.Details.Rows[0][i]) + "\n");
            }

            sb.Append("Info: " + e.Info + "\n");
            sb.Append("Source: " + e.Source + "\n");
            sb.Append("Type: " + e.Type + "\n");

            foreach (string str in e.ResourceNames)
            {
                sb.Append("Resource name: " + str + "\n");
            }

            Console.WriteLine(sb.ToString());
            //SetText(sb.ToString());
        }

        delegate void SetTextDelegate(string txt);
        private void SetText(string txt)
        {
            if (this.InvokeRequired)
            {
                SetTextDelegate d = new SetTextDelegate(SetText);
                d.Invoke(txt);
            }
            else
                txtCode.Text = txt;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -