c# - 在多个 SQL 表中搜索数据

标签 c# asp.net sql

在我的 SQL 数据库中,我有一个表代表美国的每个州。用户可以创建多个处于不同状态的页面。每个表都有一个“UserID”列,该列始终与登录用户匹配。如何在多个表中搜索“UserID”?

string sqlquery = "SELECT * FROM[all tables] WHERE @UserID ='" + userID.Text + "'";

SqlConnection conn1 = new SqlConnection(connString);
SqlCommand comm1 = new SqlCommand(sqlquery, conn1);
SqlDataReader DR1 = comm1.ExecuteReader();
if (DR1.Read())
{
Textbox1.Text = DR1.GetValue(0).ToString();
}

最佳答案

我还没有看到您的数据库架构,但我已经可以告诉您需要重构它。没有必要为每个州都有一个表格,而且维护起来可能很粗糙。你应该有一个包含所有状态的表,然后是另一个引用状态表的表,该表包含你想要的任何信息(你的“页面”)

CREATE TABLE States
(
    StateID int not null, --PK
    StateName nvarchar(32) not null
)

CREATE TABLE Pages
(
    PagesID int not null, --PK
    StateID int not null, --FK
    UserID int not null
    //Whatever other columns you need
)

现在,您可以根据特定的PageStateUser 查询Pages

SELECT * FROM Pages WHERE UserID = (userId)
SELECT * FROM Pages WHERE StateID IN (1, 5, 20)
SELECT * FROM Pages WHERE PageID = (pageID)

关于c# - 在多个 SQL 表中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636722/

相关文章:

c# - 查找允许重复所选项目的所有可能组合

c# - 如何为 .Net 应用程序创建自定义安装过程?

c# - 无法通过代码清除 Silverlight 图表工具包轴

c# - 在 gridview 中格式化枚举

asp.net - 在静态 Web 方法(ASPNet Web 窗体)中调用 ResolveClientUrl

java.sql.SQLException : Internal Error: Invalid type oid?

C# 和反射不能连续工作两次

mysql - 我如何在 SQL 中获取整个商店列表

sql - 查找时间戳间隔 > 15 分钟的连续记录

c# - ViewState 维护了哪些控件?