我有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
变量吗?
我知道这是一个简单的问题,但我需要帮助。
感谢的
答案 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);