我正在开发一个应用程序,其中用户具有使用不同功能的不同权限(例如,读取,创建,下载,打印,批准等).预计权限列表不会经常更改.我有几个如何在数据库中存储这些权限的选项.
选项2在哪些情况下更好?
使用关联表.
User ---- UserId (PK) Name Department
Permission ---- PermissionId (PK) Name
User_Permission ---- UserId (FK) PermissionId (FK)
为每个用户存储位掩码.
User ---- UserId (PK) Name Department Permissions
[Flags]
enum Permissions {
Read = 1,
Create = 2,
Download = 4,
Print = 8,
Approve = 16
}
Run Code Online (Sandbox Code Playgroud) 如何从日期字段中按月分组(而不是按日分组)?
这是我的日期字段的样子:
2012-05-01
Run Code Online (Sandbox Code Playgroud)
这是我目前的SQL:
select Closing_Date, Category, COUNT(Status)TotalCount from MyTable
where Closing_Date >= '2012-02-01' and Closing_Date <= '2012-12-31'
and Defect_Status1 is not null
group by Closing_Date, Category
Run Code Online (Sandbox Code Playgroud) 我不确定我应该在下面的SQL查询中写什么来显示'date'列,如下所示:"month-year" - "9-2011".
SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是将数据从第一列更改为显示月份和年份,而不是仅显示月份.
我对git比较新.我们的组织使用Fork&Pull模型来管理对主分支的更改.在添加新功能时,每个开发人员都会从主分支中分叉主分支.我一直关注其他开发人员在他们自己的分支中进行的提交,并且有时希望将这些更改合并到我自己的分支中.我可以采取哪些措施来实现这一目标?
使用DataTables 的Bootstrap集成时,我在控制台中看到以下错误:
Uncaught TypeError: Cannot read property 'defaults' of undefined (dataTables.bootstrap.js:20)
这会导致分页控件上没有样式.
我可以看到在工厂初始化时,需要运行以下代码:
factory( jQuery, jQuery.fn.dataTable );
Run Code Online (Sandbox Code Playgroud)
然而,jQuery.fn.dataTable
正在回归undefined
.
我在调试模式下运行我的应用程序,我想手动抛出异常(即不在代码中).有没有办法做到这一点?
当然,throw new Exception("My forced exception");
在Command或Immediate窗口中运行不起作用.
编辑:我希望异常被我正在调试的代码周围的try-catch语句捕获.
有人可以解释一下ViewState和Session之间的区别吗?
更具体地说,我想知道在我的页面的整个生命周期中保持对象可用的最佳方法(通过回发连续设置成员).
我目前使用Sessions来做这件事,但我不确定这是不是最好的方法.
例如:
SearchObject searchObject;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
searchObject = new SearchObject();
Session["searchObject"] = searchObject;
}
else
{
searchObject = (SearchObject)Session["searchObject"];
}
}
Run Code Online (Sandbox Code Playgroud)
这允许我在我的页面上的任何其他地方使用我的searchObject,但它有点麻烦,因为我必须重置我的会话变量,如果我改变任何属性等.
我认为必须有一个更好的方法来实现这一点,以便.NET不会在每次加载页面时重新实例化对象,而且还将它放在Page类的全局范围内?
我似乎无法使用以下连接字符串读取.csv文件:
var fileName = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Uploads\\countrylist.csv");
string connectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=""text;HDR=YES;FMT=Delimited""", fileName);
OleDbConnection oledbConn = new OleDbConnection(connectionString);
oledbConn.Open();
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
'D:\ arrgh\arrgh\Uploads\countrylist.csv'不是有效路径.确保路径名拼写正确,并且您已连接到文件所在的服务器.
我确认文件在那里.这里发生了什么?
c# ×4
sql-server ×3
.net ×2
sql ×2
bitmask ×1
csv ×1
datatables ×1
email ×1
f# ×1
git ×1
github ×1
global-scope ×1
javascript ×1
oledb ×1
quotes ×1
session ×1
t-sql ×1
viewstate ×1