在我的 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
)
现在,您可以根据特定的Page
、State
或User
查询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/