你正在寻找被称为数据库中加入什么T-SQL就像这样:
SELECT s.*
FROM dbo.Sales AS s
INNER JOIN dbo.Users AS u ON u.UID = s.UID
WHERE u.UID = @YourUserID
没什么特别的,没有神奇的(无交易/隔离级别,这是一个完全不同的话题) ,只是普通的SQL
这可能是相当大的帮助(在此图之前,我钻它太深忘记坐在钉在我的墙上几个月):https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
有很多方法可以在应用程序层实现它。通常你将有机会获得当前登录的用户ID的地方,此时您可以使用ADO:
public List<SalesInfo> GetSalesInfo(int userID) {
using (SqlConnection conn = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(conn)) {
cmd.CommandText = "SELECT s.* FROM ..." // insert sql statement here
cmd.Parameters.AddWithValue("@YourUserID", userID);
var adapter = new SqlDataAdapter(cmd);
var table = new DataTable();
conn.Open();
adapter.Fill(table);
conn.Close();
var results = new List<SalesInfo>();
foreach (DataRow row in table.Rows) {
results.Add(new SalesInfo() {
SomeProperty = row['ColumnName'].ToString(),
OtherProperty = int.Parse(row['OtherColumn'])
});
}
return results;
}
}
(注意,有小于在上面的代码的最佳实践:仅用于演示目的)
或者你可以建立实体框架,这是很容易,一旦它的配置为使用:
var salesData = _context.SalesData.Where(x => x.UserID == myUserID).ToList();
所有的一切,还有约1000多种皮肤这只猫。但从两个表获取相关数据是一个简单的数据库级连接。在你的应用中消费,就像你会。
难道你不能只是构建你的应用程序不显示他们从该表中的数据?现在大多数体系结构都不限制数据库本身,而是通过应用程序限制事物。 – mason