📄 form1.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.OleDb;
using System.Collections ;
using System.Xml;
namespace test
{
public partial class Form1 : Form
{
Boolean isSelectDatabaseFile = false;//判断是否选择数据库,否则不进行下一步
OleDbConnection cn;
public ArrayList tables=new ArrayList ();
public String accessFileName;
public Form1()
{
InitializeComponent();
}
private void selectDataFilePathButton_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "All files (*.*)|*.*|mdb files (*.mdb)|*.mdb";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
dataBaseFilePathTextBox.Text = openFileDialog.FileName;
// accessFileName = openFileDialog.
isSelectDatabaseFile = true;
}
}
private void dataBaseNextButton_Click(object sender, EventArgs e)
{
if (isSelectDatabaseFile)
{
ArrayList arrTables=getDataTables(dataBaseFilePathTextBox.Text);
tablesListView.View =View.List ;
foreach (String tableName in arrTables)//遍历每一张表
{
tablesListView.Items.Add(tableName );//显示表名在listview中
}
tab.SelectedIndex = 1;
}
else
MessageBox.Show("请先选择数据库文件");
}
private ArrayList getDataTables(String accessFileName)
{
ArrayList arrTables = new ArrayList();
String url = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + accessFileName;
try
{
cn = new OleDbConnection(url);
cn.Open();
// String sql=" select Name from msysobjects where ParentID = (select id from msysobjects where Name='Tables')";
DataTable userTbl = new DataTable();
userTbl = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "Table" });
foreach (DataRow dataRow in userTbl.Rows)
{
arrTables.Add(dataRow["Table_Name"].ToString());
}
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
return arrTables;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void tablesListView_ItemChecked(object sender, ItemCheckedEventArgs e)
{
Table table = new Table();
if (e.Item.Checked)
{
table.TableName = e.Item.Text;//获得选中的表名
table.AccesFileName = dataBaseFilePathTextBox.Text;
//获得当前表的所有的字段及类型保存在table类中
DataTable userTbl = new DataTable();
userTbl = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[] { null, null, table.TableName, null });
foreach (DataRow dataRow in userTbl.Rows)
{
// 将表中字段及类型加入到table类中
Field field = new Field();
field.FieldName = dataRow["COLUMN_NAME"].ToString();
field.FieldType = dataRow["DATA_TYPE"].ToString();
field.FieldDescription =dataRow["DESCRIPTION"].ToString();
table.Fields.Add(field);
//DATA_TYPE
//string 130
//longint 3
//float 4
// int 2
}
tables.Add(table);
}
}
private void dataTableNextButton_Click(object sender, EventArgs e)
{
tab.SelectedIndex = 2;
}
private void dataTablePrevButton_Click(object sender, EventArgs e)
{
tab.SelectedIndex = 1;
}
private void generateButton_Click(object sender, EventArgs e)
{
foreach (Table table in tables)
{
table.changeTableToObjectAttributeFile (objectFilePathTextBox.Text, nameSpaceTextBox.Text);
table.changeTableToObjectLocatorFile(objectFilePathTextBox.Text, nameSpaceTextBox.Text);
}
}
private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
objectFilePathTextBox.Text = openFileDialog.FileName;
}
}
private void tablesListView_ItemCheck(object sender, ItemCheckEventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
}
private void tabPage3_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("test.xml");
XmlNodeList nodeList = xmlDoc.SelectSingleNode("tables").ChildNodes;//获取bookstore节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "tableName")//如果找到
{
//xe2.InnerText = "亚胜";//则修改
MessageBox.Show (xe2.InnerText );
break;//找到退出来就可以了
}
}
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -