歌曲字數查詢SQL改版成功
This commit is contained in:
parent
ed7527c5a5
commit
2dd399783a
@ -1,13 +1,11 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Drawing;
|
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using IniParser;
|
using IniParser;
|
||||||
using IniParser.Model;
|
using IniParser.Model;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using DBObj;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ZhuYinSingers -> WordCountSongs
|
ZhuYinSingers -> WordCountSongs
|
||||||
ZhuYin -> WordCount
|
ZhuYin -> WordCount
|
||||||
@ -541,6 +539,35 @@ namespace DualScreenDemo
|
|||||||
wordCountSearchSongButton.BackgroundImage = wordCountSearchSongNormalBackground;
|
wordCountSearchSongButton.BackgroundImage = wordCountSearchSongNormalBackground;
|
||||||
// 隱藏與 WordCount 歌手相關的所有按鈕
|
// 隱藏與 WordCount 歌手相關的所有按鈕
|
||||||
SetWordCountSongsAndButtonsVisibility(false);
|
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);
|
ResizeAndPositionControl(inputBoxWordCountSongs, inputBoxWordCountCoords.X, inputBoxWordCountCoords.Y, inputBoxWordCountCoords.Width, inputBoxWordCountCoords.Height);
|
||||||
|
|
||||||
// 設定文本變更事件,當輸入框內容改變時觸發
|
// 設定文本變更事件,當輸入框內容改變時觸發
|
||||||
inputBoxWordCountSongs.TextChanged += (sender, e) =>
|
/*inputBoxWordCountSongs.TextChanged += (sender, e) =>
|
||||||
{
|
{
|
||||||
string searchText = inputBoxWordCountSongs.Text; // 取得輸入內容
|
string searchText = inputBoxWordCountSongs.Text; // 取得輸入內容
|
||||||
if (int.TryParse(searchText, out int length))
|
if (int.TryParse(searchText, out int length))
|
||||||
@ -629,7 +656,7 @@ namespace DualScreenDemo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
};
|
};*/
|
||||||
// 將輸入框加入到窗體的控件集合中
|
// 將輸入框加入到窗體的控件集合中
|
||||||
this.Controls.Add(inputBoxWordCountSongs);
|
this.Controls.Add(inputBoxWordCountSongs);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using MySqlConnector;
|
||||||
using System.Drawing;
|
using DBObj;
|
||||||
using System.Windows.Forms;
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
namespace DualScreenDemo
|
namespace DualScreenDemo
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -143,5 +143,83 @@ namespace DualScreenDemo
|
|||||||
1214, 544, 209, 58, ref numberSearchSongNormalBackground, ref numberSearchSongActiveBackground,
|
1214, 544, 209, 58, ref numberSearchSongNormalBackground, ref numberSearchSongActiveBackground,
|
||||||
normalStateImageSongQuery, mouseDownImageSongQuery, SongIDSearchSongsButton_Click);
|
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>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MySqlConnector" Version="2.4.0" />
|
||||||
<PackageReference Include="System.IO.Ports" Version="9.0.3" />
|
<PackageReference Include="System.IO.Ports" Version="9.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user