Мне нужно заполнить datagridview2 после выбора значения в datagridview1.Я делаю это, извлекая значения ключей из dgv1 и добавляя их в сценарий SQL, который подается на адаптер, заполняющий набор данных, который, в свою очередь, отображается в dgv2.
У меня есть код, который работает 99,9% времени.Однако, есть случайные значения, которые передаются, которые нарушают код.Поэтому я хочу улучшить создание своего SQL-запроса, добавив параметры, а не просто помещая значения непосредственно в сценарий.Дополнительная безопасность - хороший побочный эффект этой задачи.
Я думаю, что я почти на месте, я просто не могу получить параметры для передачи в мой скрипт.
Вот мой текущий кодкоторый работает нормально, за исключением случаев, когда неверное значение передается как одно из значений varValues ...
string sql = @"select distinct Value1, Value2, Value3 from vSourceView where value1 = " + varValue1 + " and value2 = " + varValue2;
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
DataSet da = new DataSet();
da.Tables.Add(sql);
adapter.Fill(da, sql);
dataGridView2.DataSource = da;
dataGridView2.DataMember = sql;
Вот мой "новый" код, который не работает ...
string sql = "select distinct Value1, Value2, Value3 from vSourceView where Value1 = @value1 and Value2 = @value2";
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
adapter.SelectCommand.Parameters.AddWithValue("@value1", varValue1);
adapter.SelectCommand.Parameters.AddWithValue("@value2", varValue2);
//added for testing
textBox1.Text = sql;
DataSet da = new DataSet();
da.Tables.Add(sql);
adapter.Fill(da, sql);
dataGridView2.DataSource = da;
dataGridView2.DataMember = sql;
Параметры не передаются в скрипт.Когда я запускаю приложение, textBox1 показывает «выберите отдельные значения Value1, Value2, Value3 из vSourceView, где Value1 = @ value1 и Value2 = @ value2», а dgv2 не заполнено.
Чего мне не хватает?
Заранее спасибо.
PS
Фактическое значение, которое «нарушает» мой текущий код - «VBA.MEDICAL».Я подозреваю, что "VBA".является зарезервированной строкой ...