Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 用户表不存在_Asp.net_Dotnetnuke - Fatal编程技术网

Asp.net 用户表不存在

Asp.net 用户表不存在,asp.net,dotnetnuke,Asp.net,Dotnetnuke,我制作了一个模块,使用DNN的用户表。 但今天我得到了一个有线错误,用户表不存在。 当我查看数据库时,我看到Users表名实际上是dbo\u Users 我认为DNNUserstable总是有相同的名称,但事实并非如此。 dnn将该前缀添加到表(所有dnn表)的原因是什么?我如何知道表是否具有该前缀?DotNetNuke允许为数据库(以及自定义架构/数据库所有者)设置带有“”的站点。这样可以实现更好的安全性,并且可以在同一数据库中承载多个应用程序,同时避免命名冲突。这两个原因都不是很好,很少有人

我制作了一个模块,使用DNN的
用户
表。
但今天我得到了一个有线错误,
用户
表不存在。
当我查看数据库时,我看到
Users
表名实际上是
dbo\u Users

我认为DNN
Users
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中更改它,因为它是在网站的原始安装中使用的。