我希望从People和地址获取所有列,其中CategoryId等于类别。
有这个查询。
SELECT
Category.Id, People.*, Adress.*
FROM
Category
JOIN
People ON People.CategoryId = Category.CategoryId
JOIN
Adress ON Adress.PeopleId = People.Id
WHERE
Category.CategoryId = @category
ORDER BY
People.PeopleId DESC ;
运行应用程序时出现错误。
>应用程序中的服务器错误。无效的列名称“Id”。列名称“Id”无效。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Data.SqlClient.SqlException:无效列 名字'Id'。列名称“Id”无效。
源错误:第153行:da.SelectCommand = command;线 154:DataTable dt = new DataTable();第155行:
da.Fill(DT);第156行:cn.Close();第157行:
PagedDataSource pgitems = new PagedDataSource();
为什么它不起作用?一些帮助?
使用visual studio本地数据库。
答案 0 :(得分:1)
错误是因为您的表“类别”没有列名“Id”。看起来您需要将其更改为“CategoryId”。
您的人员表也可能存在类似的问题(没有“Id”列)。
答案 1 :(得分:0)
错误似乎在Category.Id上,请验证此大写是否正确。我认为这类似于“Category.id”或“Category.CategoryId”
答案 2 :(得分:0)
将ID更改为相应的CategoryId和PeopleId
SELECT Category.CategoryId , People.*, Adress.*
FROM Category JOIN People ON People.CategoryId=Category.CategoryId
JOIN Adress ON Adress.PeopleId=People.PeopleId
WHERE Category.CategoryId=@category
ORDER BY People.PeopleId DESC ;