From 979cb30a7bb1a00cb7c6d6d19dfdeb1d769becff Mon Sep 17 00:00:00 2001 From: jasonchenwork Date: Tue, 15 Apr 2025 10:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=84=AA=E5=8C=96SQL=E6=9F=A5=E8=A9=A2+UI?= =?UTF-8?q?=E9=A1=AF=E7=A4=BA=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrimaryFormParts/PrimaryForm.SQLSearch.cs | 15 ++++++++++++--- PrimaryFormParts/PrimaryForm.cs | 3 ++- .../PrimaryForm.SingerSearch.BopomofoSearch.cs | 5 ++++- .../PrimaryForm.SingerSearch.EnglishSearch.cs | 5 ++++- .../PrimaryForm.SingerSearch.HandwritingSearch.cs | 5 ++++- .../PrimaryForm.SingerSearch.PinyinSearch.cs | 5 ++++- .../PrimaryForm.SongSearch.BopomofoSearch.cs | 4 +++- .../PrimaryForm.SongSearch.EnglishSearch.cs | 7 ++++--- .../PrimaryForm.SongSearch.HandwritingSearch.cs | 5 ++++- .../PrimaryForm.SongSearch.NumberSearch.cs | 5 +++++ .../PrimaryForm.SongSearch.PinyinSearch.cs | 5 +++-- 11 files changed, 49 insertions(+), 15 deletions(-) diff --git a/PrimaryFormParts/PrimaryForm.SQLSearch.cs b/PrimaryFormParts/PrimaryForm.SQLSearch.cs index 3de98a2..7ca29a1 100644 --- a/PrimaryFormParts/PrimaryForm.SQLSearch.cs +++ b/PrimaryFormParts/PrimaryForm.SQLSearch.cs @@ -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 searchResults = new List(); 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 SearchSingers_Mysql(string query){ List searchResults = new List(); 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)) { diff --git a/PrimaryFormParts/PrimaryForm.cs b/PrimaryFormParts/PrimaryForm.cs index 935d25b..f7bd6d8 100644 --- a/PrimaryFormParts/PrimaryForm.cs +++ b/PrimaryFormParts/PrimaryForm.cs @@ -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); diff --git a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.BopomofoSearch.cs b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.BopomofoSearch.cs index 9e79b04..d449ef8 100644 --- a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.BopomofoSearch.cs +++ b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.BopomofoSearch.cs @@ -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; diff --git a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.EnglishSearch.cs b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.EnglishSearch.cs index c278bc0..c3189c4 100644 --- a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.EnglishSearch.cs +++ b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.EnglishSearch.cs @@ -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; diff --git a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.HandwritingSearch.cs b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.HandwritingSearch.cs index 9d0543e..10dc374 100644 --- a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.HandwritingSearch.cs +++ b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.HandwritingSearch.cs @@ -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; diff --git a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.PinyinSearch.cs b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.PinyinSearch.cs index d8a5039..4050cd2 100644 --- a/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.PinyinSearch.cs +++ b/PrimaryFormParts/SingerSearch/PrimaryForm.SingerSearch.PinyinSearch.cs @@ -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); // 重置分頁 diff --git a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.BopomofoSearch.cs b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.BopomofoSearch.cs index 2621997..6ba5763 100644 --- a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.BopomofoSearch.cs +++ b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.BopomofoSearch.cs @@ -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); // 重置分頁 diff --git a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.EnglishSearch.cs b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.EnglishSearch.cs index f813f06..33040e0 100644 --- a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.EnglishSearch.cs +++ b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.EnglishSearch.cs @@ -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); // 重置分頁 diff --git a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.HandwritingSearch.cs b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.HandwritingSearch.cs index 2f6a7b4..52b1df6 100644 --- a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.HandwritingSearch.cs +++ b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.HandwritingSearch.cs @@ -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); // 重置分頁 diff --git a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.NumberSearch.cs b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.NumberSearch.cs index 6485825..f596e91 100644 --- a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.NumberSearch.cs +++ b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.NumberSearch.cs @@ -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); diff --git a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.PinyinSearch.cs b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.PinyinSearch.cs index 5b284f1..1639fb7 100644 --- a/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.PinyinSearch.cs +++ b/PrimaryFormParts/SongSearch/PrimaryForm.SongSearch.PinyinSearch.cs @@ -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;