データベースとの接続を作成するために使用するコード
private static string MySqlUsername, MySqlPassword, MySqlDatabase, MySqlHost;
private static string ConnectionString;
public static void CreateConnection(string user, string password, string database, string host)
{
MySqlUsername = user;
MySqlHost = host;
MySqlPassword = password;
MySqlDatabase = database;
ConnectionString = "Server=" + MySqlHost + ";Database='" + MySqlDatabase + "';Username='" + MySqlUsername + "';Password='" + MySqlPassword + "';Pooling=true; Max Pool Size = 160000; Min Pool Size = 0;CHARSET=utf8";
}
public static MySql.Data.MySqlClient.MySqlConnection MySqlConnection
{
get
{
MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection();
conn.ConnectionString = ConnectionString;
return conn;
}
}
私の問題は、そのコードでutf-8データベースから文字列を選択するときです
public void accf()
{
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
cmd.Select("med").Where("Name", MName.Text).Or("UID", MUID.Text).Execute();
MySqlReader r = new MySqlReader(cmd);
if (r.Read())
{
CharName.Text = r.ReadString("Name");
}
else
{
fnf.ForeColor = Color.Red;
fnf.Text = "can't found anything";
fnf.Visible = true;
}
}
Name の文字列が number であっても読み取ることができますが、anyname の場合、プログラムは何も見つからないと言いました。ここに表があります
DROP TABLE IF EXISTS `med`;
CREATE TABLE `med` (
`Name` varchar(16) CHARACTER SET utf8 NOT NULL,
`UID` bigint(18) unsigned NOT NULL,
`Substance` varchar(45) CHARACTER SET utf8 NOT NULL,
`Expiry` date DEFAULT NULL,
`Type` tinyint(5) unsigned DEFAULT '10',
`Note` varchar(18) DEFAULT NULL,
PRIMARY KEY (`UID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
英語が下手で申し訳ありませんが、私の問題を解決するのに役立つことを願っています