📄 frmmain.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 + -