2016-12-09 3 views
0

У меня есть этот класс заполнения. Я получаю, что ошибка не может выполнять операции с строкой и int. Что я делаю не так?C# forms Невозможно выполнить операцию = по строке и int

Я пытаюсь получить данные на основе Md_id, который является номером строки щелкнутой строки в datagridview1 и отображает ff. данные в datagridview2. Но получает ошибку ниже из-за строки.

view.RowFilter = "MD_ID = " + MdNum ; 

Ниже мой код:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    //get Md_id based on the row 
    String MdNum = dataGridView1.CurrentRow.Cells[0].Value.ToString(); 

    //populate datagridview2 
    XMLLevel2PopulateTable(MdNum.ToString()); 
} 

private void XMLLevel2PopulateTable(string MdNum) 
{ 
    DataTable dt = new DataTable(); 
    dt = ds.Tables["Tables"]; 
    DataView view = new DataView(dt); 
    view.RowFilter = "MD_ID = " + MdNum ; // error here with mdNum 
    dataGridView2.DataSource = view; 
} 

ошибка:

Необработанное исключение типа 'System.Data.EvaluateException' произошло в System.Data.dll

Дополнительная информация: Невозможно выполнить операцию «=» на System.String и System.Int32.

Пробовал код ff, но все еще существует ошибка.

private void XMLLevel2PopulateTable(string MdNum) 
{ 
    DataTable dt = new DataTable(); 
    dt = ds.Tables["Tables"]; 
    DataView view = new DataView(dt); 
    view.RowFilter = string.Format("MD_ID = {0}", MdNum); // error here with mdNum 
    dataGridView2.DataSource = view; 
} 

ответ

1

если ваш столбец имеет целочисленный тип. Исключение указывает, что вы пытаетесь сравнить строку с int.

view.RowFilter = string.Format("MD_ID = '{0}'", MdNum);