Skip to content

Commit 2022ec4

Browse files
committed
fix bug
1 parent b99e0de commit 2022ec4

File tree

4 files changed

+57
-14
lines changed

4 files changed

+57
-14
lines changed

Context/ContextUtils.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,12 @@ public static bool TestConnectDB(EnumDatabase enumDatabase, string connectString
111111
return true;
112112
}
113113

114+
private static Dictionary<string, EnumDatabase> kvEnum = new Dictionary<string, EnumDatabase>();
115+
114116
public static DBConnect CreateConnectDB(EnumDatabase enumDatabase,string Key, string connectString)
115117
{
116118
try
117119
{
118-
//string Key = MD5Helper.EncryptString(connectString);
119120
IFreeSql? freeSql;
120121
if(!keyValueDataBase.TryGetValue(Key, out freeSql))
121122
{
@@ -124,7 +125,8 @@ public static DBConnect CreateConnectDB(EnumDatabase enumDatabase,string Key, st
124125
return new KeyValArgs(Key, connectString);
125126
});
126127
}
127-
return new DBConnect(freeSql);
128+
kvEnum.Add(Key,enumDatabase);
129+
return new DBConnect(freeSql,enumDatabase);
128130
}
129131
catch (Exception e)
130132
{
@@ -137,7 +139,8 @@ public static DBConnect CreateConnectDB(EnumDatabase enumDatabase,string Key, st
137139
IFreeSql? freeSql;
138140
if (keyValueDataBase.TryGetValue(Key, out freeSql))
139141
{
140-
return new DBConnect(freeSql);
142+
EnumDatabase enumDatabase = kvEnum[Key];
143+
return new DBConnect(freeSql,enumDatabase);
141144
}
142145
return null;
143146
}

Context/DBConnect.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using FreeSql.DatabaseModel;
1+
using DataDefine;
2+
using FreeSql.DatabaseModel;
23
using MySqlX.XDevAPI;
34
using System;
45
using System.Collections.Generic;
@@ -15,8 +16,13 @@ public class DBConnect
1516

1617
private Exception? error { get; set; }
1718

18-
public DBConnect(IFreeSql? freeSql) {
19+
private EnumDatabase _dataType { get; set; }
20+
21+
public EnumDatabase DataType { get { return _dataType; } }
22+
23+
public DBConnect(IFreeSql? freeSql,EnumDatabase dataType) {
1924
this.freeSql = freeSql;
25+
_dataType = dataType;
2026
}
2127

2228
public DBConnect(IFreeSql? freeSql,Exception? e)
@@ -152,7 +158,19 @@ public List<List<string>> GetColInfos(string tableName)
152158

153159
public DataTable ExeQueryBySQL(string sql,object parms = null)
154160
{
155-
return freeSql.Ado.ExecuteDataTable(sql,parms);
161+
//限制最多一千条数据
162+
string limitSql = string.Empty;
163+
if(_dataType == EnumDatabase.Mysql || _dataType == EnumDatabase.SqlLite)
164+
{
165+
limitSql = $"SELECT * FROM ({sql}) a LIMIT 1000";
166+
}else if(_dataType == EnumDatabase.Sqlserver)
167+
{
168+
limitSql = $"SELECT TOP 1000 * FROM ({sql}) a";
169+
}
170+
return freeSql.Ado.ExecuteDataTable(limitSql, parms);
156171
}
172+
173+
174+
157175
}
158176
}

FreesqlGenCode/controls/FsShowTables.Designer.cs

Lines changed: 20 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreesqlGenCode/controls/MyGenCodeSqlControl.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Model;
1+
using Context;
2+
using Model;
23
using System;
34
using System.Collections.Generic;
45
using System.ComponentModel;
@@ -86,13 +87,20 @@ private void button2_Click(object sender, EventArgs e)
8687
MessageBox.Show("请添加节点");
8788
return;
8889
}
89-
string sql = fsShowTables.GetSql(firstTableNode);
90+
9091
//找出所有查询的字段
9192
List<string> lstQueryField = new List<string>();
9293
fsShowTables.GetQueryFieldOfChildNodes(lstQueryField,firstTableNode);
9394

9495
TreeNode node = fsShowTables.Tag as TreeNode;
9596
FsDatabase fsDatabase = (FsDatabase)node.Tag;
97+
DBConnect dBConnect = ContextUtils.GetDBConnect(fsDatabase.DBKey);
98+
if (!dBConnect.TestConnect())
99+
{
100+
MessageBox.Show("数据库连接无效!");
101+
return;
102+
}
103+
string sql = fsShowTables.GetSql(firstTableNode,dBConnect.DataType);
96104

97105
FormGenSql genSql = new FormGenSql();
98106
genSql.Text = "生成SQL";

0 commit comments

Comments
 (0)