1

データベースを照会および更新するローカルホストサイトで作業しています。私はASP.NETをあまり使用していません。

現在のWindowsユーザーを見つけて、検索されたユーザー名に一致するデータベース内のすべてのレコードを選択することが可能かどうか疑問に思っています。

vbscriptでこれを行う方法は知っていますが、cshtmlファイルで機能させる必要があります。

  1. ユーザーを見つけるにはどうすればよいですか?
  2. 選択した文はどのようになりますか?

ヘルプや提案をいただければ幸いです。

ありがとう。

編集:

特定のユーザーからのデータを表示するために使用するコードは次のとおりです。

@{
var db = Database.Open("Database") ;
var selectCommand = "SELECT * FROM Table WHERE UserID = 'asmith'";
var searchTerm = "";

var selectedData = db.Query(selectCommand, searchTerm);
var grid = new WebGrid(source: selectedData, defaultSort: "Team", rowsPerPage:20);

}

に変更WHERE UserID = 'asmith'するとWHERE UserID = @Environment.UserName、次のエラーが発生します。

There was an error parsing the query. [ Token line number = 1,Token line offset = 48,Token in error = . ]以下は赤で強調表示されています。

Line 15:     var selectedData = db.Query(selectCommand, searchTerm);

編集#2:

これにより、データベースのクエリが正常に実行され、正しいデータが返されますが、クリーンではなく、ページ上の別のクエリで問題が発生しています。

var CurrUser = Environment.UserName;
var db = Database.Open("Database") ;
var selectCommand = "SELECT * FROM Table WHERE UserID = @0";
var searchTerm = @CurrUser;
4

2 に答える 2

0

一重引用符がありません:

var selectCommand = "SELECT * FROM Table WHERE UserID = 'asmith'";

する必要があります:

var selectCommand = "SELECT * FROM Table WHERE UserID = '@" + Environment.UserName + "'";

Environment.UserNameですstring。どこでクエリを実行していますかUserID。あなたは確かにまたはいくつかUserIDであるべきではありませんintuniqueidentifier

于 2013-02-05T02:46:40.183 に答える
0

古い投稿をクリーンアップして解決するために、selectを次のようなものに変更します。

var currentUser = Request.LogonUserIdentity.Name.Substring(Request.LogonUserIdentity.Name.LastIndexOf(@"\") + 1);
var selectCommand = "SELECT * FROM Table WHERE UserID = @0";
var selectedData = db.Query(selectCommand, currentUser);
于 2015-02-04T18:10:46.090 に答える