优化字符串拼接与不分页导出
This commit is contained in:
parent
d2697baf37
commit
c0c17abea1
@ -152,7 +152,14 @@ namespace Chenfeng.MES.Archiver.Commands
|
|||||||
|
|
||||||
var valString = new StringBuilder();
|
var valString = new StringBuilder();
|
||||||
|
|
||||||
using (var reader = cmd.ExecuteReader())
|
var queryWatch = Stopwatch.StartNew();
|
||||||
|
var reader = cmd.ExecuteReader();
|
||||||
|
queryWatch.Stop();
|
||||||
|
if (queryWatch.ElapsedMilliseconds > 10_000)
|
||||||
|
{
|
||||||
|
Print("slow sql:" + sql + ",page:" + pageIndex);
|
||||||
|
}
|
||||||
|
using (reader)
|
||||||
{
|
{
|
||||||
if (columnString.Length == 0)
|
if (columnString.Length == 0)
|
||||||
{
|
{
|
||||||
@ -166,32 +173,38 @@ namespace Chenfeng.MES.Archiver.Commands
|
|||||||
|
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
{
|
{
|
||||||
var row = new List<object>();
|
//var row = new List<object>();
|
||||||
|
valString.Append('(');
|
||||||
for (int i = 0; i < reader.FieldCount; i++)
|
for (int i = 0; i < reader.FieldCount; i++)
|
||||||
{
|
{
|
||||||
var val = reader.GetValue(i);
|
var val = reader.GetValue(i);
|
||||||
|
object newVal;
|
||||||
switch (val)
|
switch (val)
|
||||||
{
|
{
|
||||||
case bool b:
|
case bool b:
|
||||||
row.Add(b ? 1 : 0);
|
newVal = b ? 1 : 0;
|
||||||
break;
|
break;
|
||||||
case string s:
|
case string s:
|
||||||
row.Add($"'{s}'");
|
newVal = $"'{s}'";
|
||||||
break;
|
break;
|
||||||
case DateTime dt:
|
case DateTime dt:
|
||||||
row.Add('\'' + dt.ToString("yyyy-MM-dd HH:mm:ss") + '\'');
|
newVal = '\'' + dt.ToString("yyyy-MM-dd HH:mm:ss") + '\'';
|
||||||
break;
|
break;
|
||||||
case byte[] byteList:
|
case byte[] byteList:
|
||||||
row.Add("0x" + string.Concat(byteList.Select(i => i.ToString("X2"))));
|
newVal = "0x" + string.Concat(byteList.Select(i => i.ToString("X2")));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
row.Add(val);
|
newVal = val;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
valString.Append(newVal);
|
||||||
|
if (i < reader.FieldCount-1)
|
||||||
|
{
|
||||||
|
valString.Append(',');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
valString.Append($"({string.Join(",", row)}),");
|
valString.Append(')');
|
||||||
|
//valString.Append($"({string.Join(",", row)}),");
|
||||||
}
|
}
|
||||||
if (valString.Length == 0) break;
|
if (valString.Length == 0) break;
|
||||||
|
|
||||||
@ -229,7 +242,7 @@ namespace Chenfeng.MES.Archiver.Commands
|
|||||||
//streamWriter.Flush();
|
//streamWriter.Flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (PageSize <= 0) break; // 不分页直接跳出
|
||||||
pageIndex++;
|
pageIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user