Asp.net 用户表不存在
我制作了一个模块,使用DNN的Asp.net 用户表不存在,asp.net,dotnetnuke,Asp.net,Dotnetnuke,我制作了一个模块,使用DNN的用户表。 但今天我得到了一个有线错误,用户表不存在。 当我查看数据库时,我看到Users表名实际上是dbo\u Users 我认为DNNUserstable总是有相同的名称,但事实并非如此。 dnn将该前缀添加到表(所有dnn表)的原因是什么?我如何知道表是否具有该前缀?DotNetNuke允许为数据库(以及自定义架构/数据库所有者)设置带有“”的站点。这样可以实现更好的安全性,并且可以在同一数据库中承载多个应用程序,同时避免命名冲突。这两个原因都不是很好,很少有人
用户表。
但今天我得到了一个有线错误,用户
表不存在。
当我查看数据库时,我看到Users
表名实际上是dbo\u Users
我认为DNNUsers
table总是有相同的名称,但事实并非如此。
dnn将该前缀添加到表(所有dnn表)的原因是什么?我如何知道表是否具有该前缀?DotNetNuke允许为数据库(以及自定义架构/数据库所有者)设置带有“”的站点。这样可以实现更好的安全性,并且可以在同一数据库中承载多个应用程序,同时避免命名冲突。这两个原因都不是很好,很少有人利用这个功能,但你仍然时不时地遇到它
您可以使用DotNetNuke.Common.Utilities.Config.GetObjectQualifer()
获取当前站点的对象限定符
在作为包安装的一部分运行的任何脚本中,DNN将自动用正确的值替换{databaseOwner}
和{objectQualifier}
标记
如果您使用或,则Brandon Haynes将一些型号适配器放在一起,这些适配器会自动将它们考虑在内。是下划线还是点?Users将指示dbo模式中的Users表。不,它是下划线而不是模式。这是我第一次看到默认的dnn表有前缀tbl_TableName。我不在电脑旁,所以现在无法测试。因此,据我所知,GetObjectQualifer()
应该返回dbo\uu
(在我的情况下)?因此,当我构建查询时,我可以使用类似于“+GetObjectQualifer()+”Users”
的东西来选择*。我还想补充的是,db限定符存储在web.config文件中以供参考,因此您可以快速在那里查找它。但是,您不能在web.config中更改它,因为它是在网站的原始安装中使用的。