0

専門家。

ユーザーが Web アプリの 1 つにログインすると、すべての従業員の名前を含むドロップダウン リストが表示されます。

従業員はシステムにログインして、自分のエントリをデータベースに記録できます。

従業員は、別の従業員のエントリをログに記録できます。

これまで、従業員はドロップダウン リストから自分の名前を選択する必要がありましたが、一貫性とデータの整合性を維持するために、従業員が名前を入力することは望ましくありません。

現在の問題は、従業員のログイン名をドロップダウンのデフォルト オプションにする方法です。別の従業員のエントリを作成する場合、従業員はリストから別の名前を選択できます。

このタスクを達成する方法はありますか?

よろしくお願いします。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not IsPostBack Then
        Dim s As String
        Dim reader As OleDbDataReader
        txtFullName.Text = Session.Item("assignedTo").ToString

      'Initialize Connection
        s = "Select login_id, UserName from tblusers ORDER BY UserName"
        Dim connStr As String = ConfigurationManager.ConnectionStrings("allstringconstrng").ConnectionString
        Dim conn As New OleDbConnection(connStr)
        Dim cmd As New OleDbCommand(s, conn)

        'Open the connection
        conn.Open()

        Try

            'Execute the Login command
            reader = cmd.ExecuteReader()
            'Populate the list of Users

            txtLoginName.DataSource = reader
            txtLoginName.DataValueField = "login_id"
            txtLoginName.DataTextField = "UserName" 
            txtLoginName.DataBind()
            'Close the reader
            reader.Close()

        Finally
            'Close Connection
            conn.Close()
        End Try
    End If

End Sub

<--新しいコード --> 試してみる

        'Execute the Login command
        reader = cmd.ExecuteReader()
        'Populate the list of Users
        Dim currentUserName As String = ""

        While reader.Read()
            If (reader("login_id").ToString().Equals(currentUserName)) Then
                currentUserName = reader("UserName").ToString()
            End If
        End While

        txtLoginName.SelectedValue = currentUserName


        'Close the reader
        reader.Close()

    Finally
        'Close Connection
        conn.Close()
    End Try
4

3 に答える 3

0

フォーム認証または Windows 認証を使用している場合は、次を使用しないでください。

txtLoginName.Text = User.Identity.Name

テキストがリストにあり、正確に一致する場合、これが選択されると思います。または、サムの方法を使用してください。しかし、探していたのは User.Identity.Name でしたか?

于 2013-01-24T17:47:57.547 に答える
0

リストにデータを入力した後、テキストで選択するだけでよろしいですか? ユーザーがログインするとわかると思いますlogin_idので、次のように、クエリの結果からユーザー名を見つけることができます。

未テスト:

string currentUserName = "";
While reader.Read()
    If (reader("login_id").ToString().Equals(currentUserLogin)) Then
        currentUserName = reader("UserName").ToString()
    End If
End While

そして、結果を介してリストが作成されたら、ユーザー名で正しいユーザーを選択します。

txtLoginName.Items.FindByValue(UserName).Selected = true;

またはさらに良いことに、すでに を知っているはずlogin_idなので、次のように、入力されたドロップダウン リストから値で選択するだけです。

txtLoginName.SelectedValue = login_id

これはlogin_id、 がリストに存在するという非常に大きな前提を置いていることに注意してください。login_id選択する前に、まず適切なチェックを実行して、 が存在するかどうかを確認することをお勧めします。

于 2013-01-24T17:31:54.297 に答える
0

Page.User プロパティを使用して Name を取得し、Page_Load イベントでドロップダウンの選択された値に割り当てることができます。

于 2013-01-24T17:30:16.727 に答える