简体   繁体   English

c#和MySQL从db和utf-8表中选择字符串

[英]c# and MySQL select string from db and utf-8 table

that the code i use to create Connection with the datebase 我用来与日期库创建Connection的代码

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;
            }
        }

my problem is when i select string from utf-8 datebase with that code 我的问题是当我从带有该代码的utf-8 datebase中选择字符串时

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;
            }
        }

whatever the string at Name was number it can read it but when it was anyname the program told me that can't found anything and here is the table 无论Name上的字符串是数字,它都可以读取,但是当它是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;

sorry for bad English i hope that can help to solve my problem 对不起,英语不好,我希望可以帮助解决我的问题

如果表返回的行多,则可以尝试使用ExecuteScalar()而不是Execute()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM