组合框中的nvarchar值赢得';t过滤数据,如果值是西里尔字母,在拉丁语中是这样
本文关键字:如果 拉丁语 过滤 nvarchar 组合 数据 | 更新日期: 2023-09-27 17:58:36
我有一个填充组合框的方法
using (SqlConnection conn = new SqlConnection(ConString))
{
// DO REMEMBER TO OPEN THE CONNECTION!!!
conn.Open();
// Connection Established
SqlCommand command = new SqlCommand("SELECT * FROM monitoring", conn);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string item = reader[11].ToString();
comboBoxPretraga.Items.Add(item);
}
}
}
此外,我还有一个DropDownClosed事件。它应该从combo中获取值,并在此基础上用同一行的数据填充文本框。
using (SqlConnection conn = new SqlConnection(ConString))
{
conn.Open();
// Connection Established
SqlCommand command = new SqlCommand("SELECT * FROM monitoring monitoring where konzervator_ime_prezime='" + comboBoxPretraga.Text + "'", conn);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string tlo = reader[2].ToString();
textBox_TloI.Text = tlo;
}
}
}
当我启动我的应用程序时,组合框中会显示正确的值。但是,当我选择一个西里尔字母的值(例如:фдгдфГд(时,textBox_TloI不会得到任何数据。但是,当我选择一个拉丁值时,它可以正常工作。问题出在组合框值中。因为,如果我从组合框中选择了拉丁字母,它会在文本框中显示西里尔字母。它似乎没有从组合框中获得正确的西里尔字母值进行过滤。
当您设置文本框的txt时,您可能需要设置区域性信息
string tlo = reader[2].ToString(CultureInfo.CurrentCulture);