如何按用户 ID 选择和显示记录
本文关键字:显示 记录 选择 ID 何按 用户 | 更新日期: 2023-09-27 18:32:35
我有一个销售页面,用户在其中搜索并显示他或她的客户记录。我有多个用户将使用此页面。我的问题是如何创建页面,当用户登录时,它只会通过他或她的用户ID显示用户的记录。
我在下面应用了您的示例:
if(!IsPostBack)
{
Session["UserId"] = User.Identity.Name;
// using (var connection = new SqlConnection("mtbase"))
{
string value = null;
if (HttpContext.Current.User != null)
{
value = HttpContext.Current.User.Identity.Name;
}
else
{
value = HttpContext.Current.Request.LogonUserIdentity.Name;
}
var split = value.Split(new char[] { '''' });
var UserId = split[split.Length - 1];
using (var cmd = new SqlCommand("SELECT * FROM FixPrice WHERE UserId=@UserId", new SqlConnection("mtbase")))
{
// Add your parameter before opening the connection
cmd.Parameters.AddWithValue("@UserId", UserId);
// Open connection
cmd.Connection.Open();
using (var reader = cmd.ExecuteReader())
{
}
cmd.Connection.Close();
}
}
}
}
我的数据库表:
表名固定价格
Id int (主键(
日期数据时间
Admin nvarchar
类别 nvarchar
品牌瓦尔查尔
价格货币
数量浮子
总和钱
UserId int (FOREIGN KEY(
我仍然收到相同的错误:
初始化字符串的格式不符合从索引 0 开始的规范。
说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。
异常详细信息:System.ArgumentException:初始化字符串的格式不符合从索引 0 开始的规范。
源错误:
第 31 行:var split = 值。Split(new char[] { '''' }(;第 32 行:var UserId = split[split.长度 - 1];第 33 行:using (var cmd = new SqlCommand("SELECT * FROM FixPrice WHERE UserId=@UserId", new SqlConnection("Skyformatbase"(((第 34 行:{第 35 行://在打开连接之前添加参数
源文件: c:''Users''migold''Documents''Visual Studio 2013''网站''SKYAPP''DashBoard.aspx.cs行: 33
让我们先关注一下:
var query = "SELECT * FROM FixPrice WHERE UserName @Username";
using (var command = new SqlCommand(query, connection))
{
// Open connection
connection.Open();
// Add your parameter
command.Parameters.AddWithValue("@Username", User.Identity.Name);
using (var reader = command.ExecuteReader())
你的SQL需要说SELECT * FROM FixPrice WHERE UserName=@Username;
您省略了 =(等号(。
接下来,您正在读取用户名,而不是用户的用户名。
然后,当然,您不会在任何地方关闭连接。可以用这种形式简化:
string value = null;
if (HttpContext.Current.User != null) {
value = HttpContext.Current.User.Identity.Name;
} else {
value = HttpContext.Current.Request.LogonUserIdentity.Name;
}
var split = value.Split(new char[] { '''' });
var userName = split[split.Length - 1];
using (var cmd = new SqlCommand("SELECT * FROM FixPrice WHERE UserName=@UserName", new SqlConnection("mtbase")))
{
// Add your parameter before opening the connection
cmd.Parameters.AddWithValue("@UserName", userName);
// Open connection
cmd.Connection.Open();
using (var reader = cmd.ExecuteReader()) {
...
}
cmd.Connection.Close();
}
我希望这有助于您走上正轨。
您可以将所有代码放在该页面的page_load事件中。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Response.Write("<br>Page has been loaded first time.");
//Read the user ID from session , asp.net membership or identity.
// call database functions to read the record respect to that user and bind the
list view , grid
}
}