Member 14709678 Ответов: 2

Значение не может быть нулевым параметром name key? В C#


public bool getSessions()
{
строка S = comboBox1.Text.Метод toString();
пробовать


{

строка запроса = "выберите 'Изменить систему убить сессии' || "" || Сид || ',' || серийный#||""||', либо ' KILL_IT, имя пользователя, статус, схема, модуль, osuser, программу, действий, logon_time, С. Сид," +
"ы.Серийный# " + "из V$сессии С" + ", где.статус &ЛТ;&ГТ; 'убили' и верхнему(С. имя пользователя), как функция Upper('%" + элемент combobox1.Текст.Отделка() + "%') " +
"заказ по s.username, s.logon_time";

используя (объекта oracleconnection кон = нового объекта oracleconnection(conString))
{
против.Открыть();
OracleCommand cmd = con.CreateCommand();
УМК.CommandText = запрос;


использование (var reader = cmd.Метода executereader())
{
DataTable dt = новый DataTable();

OracleDataAdapter da = новый OracleDataAdapter(cmd);
да.Заполнить(ДТ);
DataTable tempDT = новый DataTable();
tempDT = dt.DefaultView.ToTable(true, "KILL_IT", "USERNAME", "SCHEMANAME", "OSUSER", "PROGRAM", "LOGON_TIME");
dataGridView1.Источник данных = tempDT;

}

против.Закрывать();
вернуть true;
}

}
поймать (исключение бывший)
{
Ящик для сообщений.Шоу(напр.значение типа HRESULT.Метод toString());
Ящик для сообщений.Показать(напр.сообщение);
возвращать false;
}
}

Что я уже пробовал:

иметь проблемы
value cannot be null parameter name key?in c# 

2 Ответов

Рейтинг:
2

Kris Lantz

Отладчик будет вашим другом здесь. Вы прошли через него, чтобы определить, где происходит ошибка?
На первый взгляд, я подозреваю, что здесь есть проблема. Где объявлено ограничение?

using (OracleConnection con = new OracleConnection(conString))


Member 14709678

в чем проблема?

Kris Lantz

Из приведенного выше кода conString не объявляется, что означает, что новое OracleConnection(conString) не будет обрабатываться, поскольку оно равно null. Соединение никогда не будет открыто с БД.

Рейтинг:
0

MadMyche

Как только вы исправите свою строку подключения, исправьте SQL INJECTION уязвимость

string query = "SELECT 'ALTER SYSTEM KILL SESSION ' || '''' || sid || ',' || serial# || '''' ||' IMMEDIATE; ' KILL_IT, username, status, schemaname, module, osuser, program, action, logon_time, s.sid," +
" s.SERIAL# " + "FROM v$session s " + "WHERE s.status <> 'KILLED' and upper(s.username) like upper('%" + comboBox1.Text.Trim() + "%') " +
"order by s.username, s.logon_time";