歌曲字數查詢SQL改版成功
This commit is contained in:
parent
ed7527c5a5
commit
2dd399783a
@ -1,13 +1,11 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using IniParser;
|
||||
using IniParser.Model;
|
||||
using System.Text;
|
||||
using DBObj;
|
||||
|
||||
|
||||
/*
|
||||
ZhuYinSingers -> WordCountSongs
|
||||
ZhuYin -> WordCount
|
||||
@ -541,6 +539,35 @@ namespace DualScreenDemo
|
||||
wordCountSearchSongButton.BackgroundImage = wordCountSearchSongNormalBackground;
|
||||
// 隱藏與 WordCount 歌手相關的所有按鈕
|
||||
SetWordCountSongsAndButtonsVisibility(false);
|
||||
// 錨點 歌曲查詢改版
|
||||
FindWordCountSongs();
|
||||
}
|
||||
/// <summary>
|
||||
/// 查詢歌曲(字數查詢),連接資料庫並執行 SQL 查詢。
|
||||
/// </summary>
|
||||
private void FindWordCountSongs(){
|
||||
// 在這裡添加搜尋歌曲的邏輯
|
||||
// 例如:根據輸入框的內容搜尋歌曲
|
||||
string query = "SELECT * FROM SongLibrary WHERE CHAR_LENGTH(歌曲名稱) = @searchLength ";
|
||||
string searchText = inputBoxWordCountSongs.Text;
|
||||
if (int.TryParse(searchText, out int length))
|
||||
{
|
||||
query= $"SELECT * FROM SongLibrary WHERE CHAR_LENGTH(歌曲名稱) = {length} ";
|
||||
}
|
||||
else
|
||||
{
|
||||
// 處理輸入錯誤,例如顯示提示訊息
|
||||
//MessageBox.Show("請輸入正確的數字!");
|
||||
return;
|
||||
}
|
||||
List<SongData> searchResults = SearchSongs_Mysql(query);
|
||||
// 重置分頁
|
||||
currentPage = 0;
|
||||
currentSongList = searchResults;
|
||||
totalPages = (int)Math.Ceiling((double)searchResults.Count / itemsPerPage);
|
||||
// 更新多頁面面板的內容
|
||||
multiPagePanel.currentPageIndex = 0;
|
||||
multiPagePanel.LoadSongs(currentSongList);
|
||||
}
|
||||
|
||||
|
||||
@ -608,7 +635,7 @@ namespace DualScreenDemo
|
||||
ResizeAndPositionControl(inputBoxWordCountSongs, inputBoxWordCountCoords.X, inputBoxWordCountCoords.Y, inputBoxWordCountCoords.Width, inputBoxWordCountCoords.Height);
|
||||
|
||||
// 設定文本變更事件,當輸入框內容改變時觸發
|
||||
inputBoxWordCountSongs.TextChanged += (sender, e) =>
|
||||
/*inputBoxWordCountSongs.TextChanged += (sender, e) =>
|
||||
{
|
||||
string searchText = inputBoxWordCountSongs.Text; // 取得輸入內容
|
||||
if (int.TryParse(searchText, out int length))
|
||||
@ -629,7 +656,7 @@ namespace DualScreenDemo
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
};*/
|
||||
// 將輸入框加入到窗體的控件集合中
|
||||
this.Controls.Add(inputBoxWordCountSongs);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using MySqlConnector;
|
||||
using DBObj;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
namespace DualScreenDemo
|
||||
{
|
||||
/*
|
||||
@ -143,5 +143,83 @@ namespace DualScreenDemo
|
||||
1214, 544, 209, 58, ref numberSearchSongNormalBackground, ref numberSearchSongActiveBackground,
|
||||
normalStateImageSongQuery, mouseDownImageSongQuery, SongIDSearchSongsButton_Click);
|
||||
}
|
||||
public List<SongData> SearchSongs_Mysql(string query)
|
||||
{
|
||||
List<SongData> searchResults = new List<SongData>();
|
||||
|
||||
string connectionString = "Server=192.168.22.170;Port=3306;Database=Karaoke-Kingpin;User=Karaoke-Kingpin;Password=ESM7yTPMnavFmbBH;";
|
||||
//string query = "SELECT * FROM SongLibrary WHERE CHAR_LENGTH(歌曲名稱) = @searchLength";
|
||||
|
||||
using (var connection = new MySqlConnection(connectionString))
|
||||
{
|
||||
connection.Open();
|
||||
Console.WriteLine("MyDB 連線成功!");
|
||||
|
||||
using (var command = new MySqlCommand(query, connection))
|
||||
{
|
||||
|
||||
using (var reader = command.ExecuteReader())
|
||||
{
|
||||
while (reader.Read())
|
||||
{
|
||||
string songNumber = reader["歌曲編號"].ToString();
|
||||
string category = reader["語別"].ToString();
|
||||
string song = reader["歌曲名稱"].ToString();
|
||||
int plays = Convert.ToInt32(reader["點播次數"]);
|
||||
string artistA = reader["歌星 A"].ToString();
|
||||
string artistB = reader["歌星 B"].ToString();
|
||||
string artistACategory = reader["歌星A分類"].ToString();
|
||||
string artistBCategory = reader["歌星B分類"].ToString();
|
||||
string dateValue = reader["新增日期"]?.ToString() ?? "";
|
||||
DateTime addedTime;
|
||||
try
|
||||
{
|
||||
addedTime = DateTime.Parse(dateValue, CultureInfo.InvariantCulture).Date;
|
||||
}
|
||||
catch
|
||||
{
|
||||
addedTime = DateTime.Today;
|
||||
}
|
||||
|
||||
string basePathHost1 = reader["路徑 1"].ToString();
|
||||
string basePathHost2 = reader["路徑 2"].ToString();
|
||||
string fileName = reader["歌曲檔名"].ToString();
|
||||
string songFilePathHost1 = Path.Combine(basePathHost1, fileName);
|
||||
string songFilePathHost2 = Path.Combine(basePathHost2, fileName);
|
||||
string phoneticNotation = reader["歌曲注音"].ToString();
|
||||
string pinyinNotation = reader["歌曲拼音"].ToString();
|
||||
string artistAPhonetic = reader["歌星A注音"].ToString();
|
||||
string artistBPhonetic = reader["歌星B注音"].ToString();
|
||||
string artistASimplified = reader["歌星A簡體"].ToString();
|
||||
string artistBSimplified = reader["歌星B簡體"].ToString();
|
||||
string songSimplified = reader["歌名簡體"].ToString();
|
||||
string songGenre = reader["分類"].ToString();
|
||||
string artistAPinyin = reader["歌星A拼音"].ToString();
|
||||
string artistBPinyin = reader["歌星B拼音"].ToString();
|
||||
int humanVoice = Convert.ToInt32(reader["人聲"]);
|
||||
|
||||
searchResults.Add(new SongData(
|
||||
songNumber, category, song, plays, artistA, artistB,
|
||||
artistACategory, artistBCategory, addedTime,
|
||||
songFilePathHost1, songFilePathHost2,
|
||||
phoneticNotation, pinyinNotation,
|
||||
artistAPhonetic, artistBPhonetic,
|
||||
artistASimplified, artistBSimplified,
|
||||
songSimplified, songGenre,
|
||||
artistAPinyin, artistBPinyin,
|
||||
humanVoice
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
connection.Close();
|
||||
Console.WriteLine("MyDB 連線已關閉!");
|
||||
}
|
||||
|
||||
return searchResults;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MySqlConnector" Version="2.4.0" />
|
||||
<PackageReference Include="System.IO.Ports" Version="9.0.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
Loading…
x
Reference in New Issue
Block a user