SuperDesign/Source/RySmartEditor/FTP/FrmFTPView.cs
zilinsoft 993f1ca1a9 ### 2024-12-20 星期五更新
------
#### SuperDesign    V3.0.2412.2001
- *.[新增]新增程序更新日志设置和自动发布功能。
- *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
2024-12-20 08:15:19 +08:00

284 lines
10 KiB
C#

using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using .Manager;
namespace GameBackup3H3.DbOp
{
public partial class FrmFTPView : Form
{
readonly string orderSQL = "order by addTime desc";
readonly string tableName = "FTP";
readonly string titleName = "FTP管理";
public FrmFTPView()
{
InitializeComponent();
OlvName.AspectGetter = delegate (object x) { return ((FTPInfo)x).Name; };
OlvIP.AspectGetter = delegate (object x) { return ((FTPInfo)x).IP; };
OlvPort.AspectGetter = delegate (object x) { return ((FTPInfo)x).Port; };
OlvUserName.AspectGetter = delegate (object x) { return ((FTPInfo)x).UserName; };
OlvAddTime.AspectGetter = delegate (object x) { return ((FTPInfo)x).AddTimeStr; };
}
#region
private void RySearch1_OnSearch(object sender, EventArgs e)
{
//需要修改此处
LoadDb("(name like @SearchText or des like @SearchText)");
}
private void CtlMyPage1_OnPageChange(object sender, EventArgs e)
{
#region
LvCbResult.ClearObjects();
List<FTPInfo> list = new List<FTPInfo>();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
DataSet ds = db.ReadData(ctlMyPage1.GetSQLText, ctlMyPage1.T_Parameters);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = ds.Tables[0].Rows[i];
list.Add(new FTPInfo()
{
Id=row["id"].ToInt(),
Name = row["name"].ToString(),
IP = row["ip"].ToString(),
Port = row["port"].ToInt(),
RemoteDir = row["remoteDir"].ToString(),
UserName = row["username"].ToString(),
Pwd = row["pwd"].ToString(),
Encrypt = row["encrypt"].ToInt(0,2,0),
AddTime = row["AddTime"].ToDateTime()
}) ;
}
}
db.Free();
LvCbResult.AddObjects(list);
#endregion
}
private void GetRow(int id, int index)
{
#region
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
DataSet ds = db.ReadData("select * from " + tableName + " where id=" + id);
if (mydb.HaveData(ds))
{
DataRow row = ds.Tables[0].Rows[0];
var item=(FTPInfo) LvCbResult.GetModelObject(index);
item.Name = row["name"].ToString();
item.IP = row["ip"].ToString();
item.Port = row["port"].ToInt();
item.RemoteDir = row["remoteDir"].ToString();
item.UserName = row["username"].ToString();
item.Pwd = row["pwd"].ToString();
item.Encrypt = row["encrypt"].ToInt(0, 2, 0);
//添加剩余的项目
//添加完毕
LvCbResult.UpdateObject(item);
}
}
db.Free();
#endregion
}
#endregion
public void LoadDb(string whereSQL)
{
string _whereSQL = whereSQL;
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
#region
db.AddParameter("SearchText", "%" + rySearch1.Text + "%");
ctlMyPage1.RecordCount = db.GetCount(tableName, _whereSQL);
ctlMyPage1.T_Parameters = db.GetParameter();
ctlMyPage1.SQLText= db.GetPageSQL(tableName, _whereSQL, orderSQL);
ctlMyPage1.SQLText2 = db.GetPageSQL2(tableName, _whereSQL, orderSQL);
ctlMyPage1.GotoPageIndex(1);
#endregion
}
db.Free();
}
private void BtnAdd_Click(object sender, EventArgs e)
{
FrmAddFTP frm = new FrmAddFTP()
{
Text = "添加"+ titleName,
Icon = Icon,
isAdd = 1
};
frm.mr = new ModalForm(this, frm);
frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => {
if (dg == DialogResult.OK)
{
rySearch1.PerformClick();
}
});
frm.mr.ShowModal();
}
private void BtnEdit_Click(object sender, EventArgs e)
{
if (LvCbResult.SelectedObject == null) { return; }
var item = (FTPInfo)LvCbResult.SelectedObject;
var selectId = item.Id;
FrmAddFTP frm = new FrmAddFTP()
{
Text = "修改"+ titleName,
Icon = Icon,
isAdd = 0
};
frm.GetInfo(selectId.ToString());
frm.mr = new ModalForm(this, frm);
frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => {
if (dg == DialogResult.OK)
{
GetRow(selectId, LvCbResult.SelectedIndex);
}
});
frm.mr.ShowModal();
}
private void BtnDel_Click(object sender, EventArgs e)
{
if (LvCbResult.SelectedObject == null) { MessageBox.Show("请先选择要删除的项。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
var item = (FTPInfo)LvCbResult.SelectedObject;
var selectId = item.Id;
switch (MessageBox.Show("确定要删除该项吗?一旦删除将不可恢复。", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
{
case DialogResult.No:
return;
}
//DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
var ds = db.ReadData("select * from Site where ftpId=" + selectId + " limit 1");
if (ds.HaveData())
{
ds.Dispose();
db.Free();
MessageBox.Show("当前FTP正在被使用,无法删除。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
}
ds?.Dispose();
db.DelById(tableName, selectId.ToString());
LvCbResult.RemoveObject(item);
}
}
private void FrmView_Load(object sender, EventArgs e)
{
Text = "浏览"+ titleName;
ToolStripMenuItem.Text = "添加"+ titleName;
ToolStripMenuItem.Text = "修改" + titleName;
ToolStripMenuItem.Text = "删除" + titleName;
rySearch1.PerformClick();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
btnAdd.PerformClick();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
btnEdit.PerformClick();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
btnDel.PerformClick();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (LvCbResult.SelectedObject == null) { return; }
var item = (FTPInfo)LvCbResult.SelectedObject;
var selectId = item.Id;
FrmAddFTP frm = new FrmAddFTP()
{
Text = "添加" + titleName,
Icon = Icon,
isAdd = 1
};
frm.GetInfo(selectId.ToString());
frm.mr = new ModalForm(this, frm);
frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => {
if (dg == DialogResult.OK)
{
rySearch1.PerformClick();
}
});
frm.mr.ShowModal();
}
public bool SelectModeOn { get; set; } = false;
public FTPInfo SelectedItem { get; set; }
private void LvCbResult_DoubleClick(object sender, EventArgs e)
{
if(SelectModeOn)
{
if (LvCbResult.SelectedObject == null) { return; }
SelectedItem = (FTPInfo)LvCbResult.SelectedObject;
DialogResult=DialogResult.OK;
}
}
}
public class FTPInfo
{
/// <summary>
/// id
/// </summary>
public int Id{ get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// IP
/// </summary>
public string IP { get; set; }
/// <summary>
/// 端口
/// </summary>
public int Port { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Pwd { get; set; }
/// <summary>
/// 远程目录
/// </summary>
public string RemoteDir { get; set; }
/// <summary>
/// 加密方式
/// </summary>
public int Encrypt { get; set; }
/// <summary>
/// 添加时间
/// </summary>
public DateTime AddTime { get; set; }
public string Encoding { get; set; }= "UTF8";
/// <summary>
/// 添加时间字符串
/// </summary>
public string AddTimeStr
{
get { return AddTime.ToString("yyyy-MM-dd dddd HH:mm:ss"); }
}
}
}