如何解决C# System.Data.EvaluateException:“无法对 System.Int64 和 System.String 执行“Like”操作”我正在寻找解决您的错误的方法
当我在文本框中输入文本时,此方法有效。但是,当“else if”块运行时,它会给出我在标题中指定的错误。我该怎么做才能解决这个问题? 问题只发生在“else if”块中。此问题在其他 if、else 等块中不起作用。
private void txt_Box_urun_ara_TextChanged(object sender,EventArgs e)
{
if (urun_isim_radio.Checked == true)
{
(tablo_urunler.DataSource as DataTable).defaultview.RowFilter = string.Format("UrunAdi LIKE '{0}%'",txt_Box_urun_ara.Text);
}
else if (urun_id_radio.Checked == true)
{
(tablo_urunler.DataSource as DataTable).defaultview.RowFilter = string.Format("UrunID LIKE '{0}%'",txt_Box_urun_ara.Text);
}
else {
urun_isim_radio.Checked = true;
(tablo_urunler.DataSource as DataTable).defaultview.RowFilter = string.Format("UrunAdi LIKE '{0}%'",txt_Box_urun_ara.Text);
}
解决方法
根据您的代码,我重现了您的问题。我们可以使用Convert(ID,System.String) LIKE
对int类型进行like操作。
我做了一个代码示例,你可以参考。
private void textBox1_TextChanged(object sender,EventArgs e)
{
if(radioButton1.Checked==true)
{
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Convert(Adi,System.String) LIKE '{0}%'",textBox1.Text);
}
else if (radioButton2.Checked == true)
{
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Convert(ID,textBox1.Text);
}
}
private void Form1_Load(object sender,EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Adi",typeof(int));
dt.Columns.Add("ID",typeof(int));
dt.Rows.Add(123,1001);
dt.Rows.Add(124,1002);
dt.Rows.Add(125,1003);
dt.Rows.Add(135,1004);
dt.Rows.Add(167,1101);
dt.Rows.Add(196,1102);
dt.Rows.Add(193,1103);
dt.Rows.Add(186,1104);
this.dataGridView1.DataSource = dt;
}
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。