Эта строка очень очень неправильная:
cmd.CommandText = "Select * from users where TX_EMPLOYEE='"; (Environment.UserName) & "'";
Это должно быть так:
cmd.CommandText = "Select * from users where TX_EMPLOYEE='" + Environment.UserName + "'";
За исключением того, что это не должно быть так из-за инъекции SQL. Если бы я мог превратить Environment.UserName
в ' or 1 = 1 or TX_EMPLOYEE = '
, тогда ваш последний запрос стал бы таким:
Select * from users where TX_EMPLOYEE='' or 1 = 1 or TX_EMPLOYEE = ''
Что явно не то, что вам нужно - кто-то, у кого нет доступа к данным. Вместо этого вы должны использовать SQL параметры:
cmd.CommandText = "Select * from users where TX_EMPLOYEE=?userName";
cmd.Parameters.AddWithValue("?userName", Environment.UserName);
В отдельном примечании я смущен этим кодом:
i = Convert.ToInt32(dt.Rows.Count.ToString());
DataTable.Rows.Count уже int
, поэтому вы конвертируете число в строку в число. Почему?