0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
1

Как использовать логин пользователя для запроса в SQL

03.11.2012, 09:35. Показов 2486. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень много просмотрел форумов, но найти ответ на этот вопрос так и не смог.

Необходимо, что бы на странице отображались данные для конкретного пользователя, который вошел в систему.

Как можно при выбора данных для SqlDataSource в SelectCommand указать в SQL-запросе логин вошедшего в систему пользователя.

То есть:
SelectCommand="SELECT [IdContract], [NameClient], [Actualdept] FROM [svdContracts] WHERE ([UserLogin] = '123' "

'123' - в место этого, нужно указать текущий логин пользователя, как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2012, 09:35
Ответы с готовыми решениями:

Авторизация пользователя через логин/пароль с локальной бд sql
Всем привет. Задача: есть локальная бд с двумя значениями login и password. есть простая форма с...

При записи нового пользователя в sql проверить, не занят ли логин или не зарегистрирован ли пользователь
Привет! Такой вопрос, как в windows form при записи нового пользователя в sql проверять не занят ли...

Использовать значения запроса SELECT в t-sql
Добрый день. Проблема такая. Мне нужно получить данные select'm а потом их далее использовать в...

Как получить логин пользователя?
У меня есть такой код: <form...

10
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
03.11.2012, 20:15 2
Page.User.Identity.Name
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
04.11.2012, 07:20  [ТС] 3
sau, спасибо.

Пишу следующий код:
HTML5
1
2
3
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [IdContract], [NameClient], [Actualdept] FROM [svdContracts] WHERE ([IdUser] = <% Page.User.Identity.Name %>">
                
            </asp:SqlDataSource>

Выдает:

Ошибка сервера в приложении '/'.

Incorrect syntax near '<'.

Можете подсказать, что я делаю не так?
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
04.11.2012, 13:57 4
WHERE ([IdUser] = '<%= User.Identity.Name %>'
хотя , лучше через параметры:
http://msdn.microsoft.com/ru-r... eters.aspx
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
04.11.2012, 16:40  [ТС] 5
sau, так тоже выдает ошибку.

Пишу код:
HTML5
1
2
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [IdContract], [NameClient], [Actualdept] FROM [svdContracts] WHERE ([IdUser] = '<%= User.Identity.Name %>' ">
            </asp:SqlDataSource>
Выдает ошибку:

Incorrect syntax near '<%= User.Identity.Name %>'
Через параметры, я попробовал, но как-то не очень получилось )
Может это связано с тем, что сам логин отображается на главной форме, а код я пишу на подчиненной форме (форма использующая главную страницу)?
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
05.11.2012, 17:14  [ТС] 6
Ради эксперимента, пробую задать значение полю, все получается хорошо.

HTML5
1
2
3
4
 protected void Page_Load(object sender, EventArgs e)
        {
            TextBox2.Text = User.Identity.Name;
        }
А дальше пытаюсь по-всякому привязать значение поля к базе денные - страница загружается пустой:

HTML5
1
2
3
4
5
  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [IdContract], [NameClient], [Actualdept] FROM [svdContracts] WHERE ([IdUser] = @IdUser)">
            <SelectParameters>
                <asp:FormParameter FormField="TextBox2" Name="IdUser" Type="string" />
            </SelectParameters>
        </asp:SqlDataSource>

При этом, если в базу данных вводить фиксированное значение, то все работает:

HTML5
1
2
  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [IdContract], [NameClient], [Actualdept] FROM [svdContracts] WHERE ([IdUser] = '1' )">
               </asp:SqlDataSource>

Помогите, пожалуйста, может кто-то уже решал подобную задачу?
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
05.11.2012, 21:12 7
А User.Identity.Name=='1' ?
Но вообще, раз уж на сторону сервера перешли, тогда проще так
SqlDataSource1.SelectParameters.Add(new Parameter(...));
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
05.11.2012, 21:32  [ТС] 8
Цитата Сообщение от sau Посмотреть сообщение
А User.Identity.Name=='1' ?
Да

Цитата Сообщение от sau Посмотреть сообщение
Но вообще, раз уж на сторону сервера перешли, тогда проще так
SqlDataSource1.SelectParameters.Add(new Parameter(...));
Это не совсем понятно как записать.
Можно чуть поподробней, куда записать и что указать вместо "..." ?

P.S. Мне как новичку еще трудно это понимать.
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
05.11.2012, 21:46 9
Мда, так просто , как в моем первом посте , к сожалению не проходит.
Похоже что решить задачу чисто с помощью декларативной разметки не получится (.

Можно чуть поподробней, куда записать и что указать вместо "..." ?
Влом было MSDN читать ). - набери, там есть примеры.

Добавлено через 2 минуты
http://msdn.microsoft.com/ru-r... zew17.aspx
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 8
05.11.2012, 21:48  [ТС] 10
Попробовал написать так:

HTML5
1
2
3
4
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" 
            SelectCommand="SELECT * FROM [svdContracts] WHERE ([IdUser] = '@IdUser123')">
            SqlDataSource1.SelectParameters.Add(new Parameter("IdUser123" , "<%=User.Identity.Name%>");
        </asp:SqlDataSource>
Выдает ошибку:

Содержимое литерала ('SqlDataSource1.SelectParameters.Add(new Parameter("IdUser123" , "') в 'System.Web.UI.WebControls.SqlDataSource' не разрешено.
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
05.11.2012, 21:52 11
Это уже в основном коде нужно писать.
0
05.11.2012, 21:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2012, 21:52
Помогаю со студенческими работами здесь

Как можно узнать логин пользователя?
через какую переменную окружения можно узнать логин пользователя под которым он логинится на...

Как взять имя пользователя из AD (не логин)?
На работе попросили сделать формочку для отправки СМС работникам конторы, вроде сделал, но есть...

Как передать логин пользователя в URL?
Ситуация: пользователь заходит на web-страницу (скажем, http://www.mysite.ru/account/index.htm),...

Можно ли в строке SQL запроса использовать значение строковой переменной
Если подставляю в строку переменную file_name : cnn.Execute 'DELETE FROM Adr WHERE Page_name =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru