搜索数据库UWP

时间:2016-09-05 09:01:49

标签: c# sql uwp

我有UWP应用,需要在我的数据库中搜索手机号码。

现在我像这样搜索:

 searchButton.Click += delegate

            {

                telephone = searchtext.Text;

                    using (MySqlConnection connection = new MySqlConnection("Database= ******;Data Source=**********;User Id=**********;Password=********; SslMode=None; CharSet=utf8"))
                    {

                        connection.Open();


                        MySqlCommand createCommand = new MySqlCommand("SELECT * FROM reg_user WHERE mob LIKE N'%+380675090373%'", connection);
                       EncodingProvider ppp;
                       ppp = CodePagesEncodingProvider.Instance;
                        System.Text.Encoding.RegisterProvider(ppp);
                        MySqlDataReader reader = createCommand.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            Debug.WriteLine("{0}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}\t{11}\t{12}", reader.GetString(0), reader.GetString(1)
                             , reader.GetString(2), reader.GetString(3),reader.GetString(4), reader.GetString(5), reader.GetString(6),reader.GetString(7), reader.GetString(8), reader.GetString(9),reader.GetString(10), reader.GetString(11), reader.GetString(12));


                        }
                    }
                    else
                    {
                        Debug.WriteLine("No rows found.");
                    }
                    reader.Close();

                    //Debug.WriteLine(reader.ToString());
                }
           };

我需要从textbox获取字符串并搜索我从中获取的字符串。

我做了这样的字符串telephone = searchtext.Text;我需要粘贴telephone变量吗?

我知道这是一个简单的问题,但我需要帮助。

感谢的

2 个答案:

答案 0 :(得分:1)

快速和脏版本:用电话变量替换SQL语句中的电话号码。

MySqlCommand createCommand = new MySqlCommand("SELECT * FROM reg_user WHERE mob LIKE N'%" + telephone + "%'", connection);

如果您不检查用户输入,这是不安全的!您正在为SQL注入创建一个空缺...

对于更安全的版本,您应该使用参数。以下是一个示例,灵感来自this documentation

string sql = @"SELECT * FROM reg_user WHERE mob LIKE N'%' + @telephone + '%'";
MySqlCommand cmd = new MySqlCommand(sql, connection);
cmd.Parameters.AddWithValue("@telephone", "+3333333333");

答案 1 :(得分:0)

将sql命令更改为:

"SELECT * FROM reg_user WHERE mob LIKE N'%' + @telephone + '%'";

在执行sql命令之前,添加以下行:

createCommand.Parameters.AddWithValue("@telephoneNumber", telephone);