優化SQL查詢+UI顯示修正

This commit is contained in:
jasonchenwork 2025-04-15 10:59:03 +08:00
parent fb2ae757bb
commit 979cb30a7b
11 changed files with 49 additions and 15 deletions

View File

@ -2,6 +2,8 @@ using MySqlConnector;
using DBObj;
using System.Globalization;
using System.IO;
using System.Diagnostics;
namespace DualScreenDemo{
public partial class PrimaryForm
{
@ -9,11 +11,16 @@ namespace DualScreenDemo{
{
List<SongData> searchResults = new List<SongData>();
Console.WriteLine(query);
string connectionString = "Server=192.168.22.170;Port=3306;Database=Karaoke-Kingpin;User=Karaoke-Kingpin;Password=ESM7yTPMnavFmbBH;";
string connectionString = "Server=192.168.11.4;Port=3306;Database=Karaoke-Kingpin;User=Karaoke-Kingpin;Password=ESM7yTPMnavFmbBH;";
using (var connection = new MySqlConnection(connectionString))
{
Stopwatch stopwatch = new Stopwatch();
connection.Open();
stopwatch.Start();
Console.WriteLine("MyDB 連線成功!");
using (var command = new MySqlCommand(query, connection))
@ -75,7 +82,9 @@ namespace DualScreenDemo{
}
connection.Close();
Console.WriteLine("MyDB 連線已關閉!");
stopwatch.Stop();
Console.WriteLine($"MyDB 連線已關閉!執行時間: {stopwatch.ElapsedMilliseconds} 毫秒");
Console.WriteLine($"查詢到 {searchResults.Count} 筆資料。");
}
return searchResults;
@ -84,7 +93,7 @@ namespace DualScreenDemo{
public List<Artist> SearchSingers_Mysql(string query){
List<Artist> searchResults = new List<Artist>();
Console.WriteLine(query);
string connectionString = "Server=192.168.22.170;Port=3306;Database=Karaoke-Kingpin;User=Karaoke-Kingpin;Password=ESM7yTPMnavFmbBH;";
string connectionString = "Server=192.168.11.4;Port=3306;Database=Karaoke-Kingpin;User=Karaoke-Kingpin;Password=ESM7yTPMnavFmbBH;";
using (var connection = new MySqlConnection(connectionString))
{

View File

@ -342,7 +342,8 @@ namespace DualScreenDemo
// 顯示包廂名稱
// 取主機名稱的最後 20 個字元 (如果長度不足 20則取全部)
string displayName = "包廂" + hostName.Substring(Math.Max(0, hostName.Length - 20));
string pageNumber = (multiPagePanel.currentPageIndex + 1).ToString() + "/" + (multiPagePanel.totalPages).ToString();
string totalPages = multiPagePanel.totalPages.ToString() == "0" ? "1" : multiPagePanel.totalPages.ToString();
string pageNumber = (multiPagePanel.currentPageIndex + 1).ToString() + "/" + totalPages;
// 設定字型:
// "微軟正黑體",大小 24粗體 (Bold)
Font font = new Font("微軟正黑體", 24, FontStyle.Bold);

View File

@ -521,7 +521,10 @@ namespace DualScreenDemo
}
private void FindZhuYiSingers(){
string searchText = inputBoxZhuYinSingers.Text;
string query = $"SELECT * FROM ArtistLibrary WHERE `歌手注音` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM ArtistLibrary LIMIT 50;"
: $"SELECT * FROM ArtistLibrary WHERE `歌手注音` LIKE '{searchText}%';";
//string query = $"SELECT * FROM ArtistLibrary WHERE `歌手注音` LIKE '{searchText}%' ";
var searchResults = SearchSingers_Mysql(query);
currentPage = 0;

View File

@ -271,7 +271,10 @@ namespace DualScreenDemo
}
private void FindEnglishSingers(){
string searchText = inputBoxEnglishSingers.Text;
string query = $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM ArtistLibrary LIMIT 50;"
: $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%';";
//string query = $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%' ";
var searchResults = SearchSingers_Mysql(query);
currentPage = 0;

View File

@ -289,7 +289,10 @@ namespace DualScreenDemo
}
private void FindHandwritingSingers(){
string searchText = handwritingInputBoxForSingers.Text;
string query = $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM ArtistLibrary LIMIT 50;"
: $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%';";
//string query = $"SELECT * FROM ArtistLibrary WHERE `歌手姓名` LIKE '{searchText}%' ";
var searchResults = SearchSingers_Mysql(query);
currentPage = 0;

View File

@ -175,7 +175,10 @@ namespace DualScreenDemo
string searchText = inputBoxPinYinSingers.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
string query = $"SELECT * FROM SongLibrary WHERE `歌星A拼音` LIKE '{searchText}%' OR `歌星B拼音` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM SongLibrary ORDER BY `點播次數` DESC LIMIT 200;"
: $"SELECT * FROM SongLibrary WHERE `歌星A拼音` LIKE '{searchText}%' OR `歌星B拼音` LIKE '{searchText}%' ";
//string query = $"SELECT * FROM SongLibrary WHERE `歌星A拼音` LIKE '{searchText}%' OR `歌星B拼音` LIKE '{searchText}%' ";
var searchResults = SearchSongs_Mysql(query);
// 重置分頁

View File

@ -309,7 +309,9 @@ namespace DualScreenDemo
string searchText = inputBoxZhuYinSongs.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
string query = $"SELECT * FROM SongLibrary WHERE `歌曲注音` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM SongLibrary ORDER BY `點播次數` DESC LIMIT 200;"
: $"SELECT * FROM SongLibrary WHERE `歌曲注音` LIKE '{searchText}%' ORDER BY `點播次數` DESC;";
var searchResults = SearchSongs_Mysql(query);
// 重置分頁

View File

@ -228,9 +228,10 @@ namespace DualScreenDemo
}
private void FindEnglishSongs(){
string searchText = inputBoxEnglishSongs.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
string query = $"SELECT * FROM SongLibrary WHERE `歌曲名稱` LIKE '{searchText}%' ";
// 檢查是否為空字串或空白字元
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM SongLibrary ORDER BY `點播次數` DESC LIMIT 200;"
: $"SELECT * FROM SongLibrary WHERE `歌曲名稱` LIKE '{searchText}%' ORDER BY `點播次數` DESC;";
var searchResults = SearchSongs_Mysql(query);
// 重置分頁

View File

@ -286,7 +286,10 @@ namespace DualScreenDemo
string searchText = handwritingInputBoxForSongs.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
string query = $"SELECT * FROM SongLibrary WHERE `歌曲名稱` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM SongLibrary ORDER BY `點播次數` DESC LIMIT 200;"
: $"SELECT * FROM SongLibrary WHERE `歌曲名稱` LIKE '{searchText}%' ORDER BY `點播次數` DESC;";
var searchResults = SearchSongs_Mysql(query);
// 重置分頁

View File

@ -545,6 +545,11 @@ namespace DualScreenDemo
string searchText = inputBoxSongIDSearch.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
if (string.IsNullOrEmpty(searchText))
{
// 如果輸入框為空,則不進行搜尋
return;
}
string query = $"SELECT * FROM SongLibrary WHERE `歌曲編號` = '{searchText}' ";
var searchResults = SearchSongs_Mysql(query);

View File

@ -265,8 +265,9 @@ namespace DualScreenDemo
string searchText = inputBoxPinYinSongs.Text;
// 在這裡添加搜尋歌曲的邏輯
// 例如:根據輸入框的內容搜尋歌曲
string query = $"SELECT * FROM SongLibrary WHERE `歌曲拼音` LIKE '{searchText}%' ";
string query = string.IsNullOrWhiteSpace(searchText)
? "SELECT * FROM SongLibrary ORDER BY `點播次數` DESC LIMIT 200;"
: $"SELECT * FROM SongLibrary WHERE `歌曲拼音` LIKE '{searchText}%' ORDER BY `點播次數` DESC;";
var searchResults = SearchSongs_Mysql(query);
// 重置分頁
currentPage = 0;