小编Rya*_*ohn的帖子

什么时候将标志存储为位掩码而不是使用关联表?

我正在开发一个应用程序,其中用户具有使用不同功能的不同权限(例如,读取,创建,下载,打印,批准等).预计权限列表不会经常更改.我有几个如何在数据库中存储这些权限的选项.

选项2在哪些情况下更好?

选项1

使用关联表.

User
----
UserId (PK)
Name
Department
Permission
----
PermissionId (PK)
Name
User_Permission
----
UserId (FK)
PermissionId (FK)

选项2

为每个用户存储位掩码.

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)

c# sql-server database-design bitmask

75
推荐指数
4
解决办法
8059
查看次数

如何使用sql从Date字段按月分组

如何从日期字段中按月分组(而不是按日分组)?

这是我的日期字段的样子:

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 t-sql sql-server

72
推荐指数
4
解决办法
23万
查看次数

按月和年分组的SQL分组

我不确定我应该在下面的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)

所以,我想要做的是将数据从第一列更改为显示月份和年份,而不是仅显示月份.

sql sql-server

62
推荐指数
7
解决办法
20万
查看次数

如何将其他开发人员的分支合并到我的分支中?

我对git比较新.我们的组织使用Fork&Pull模型来管理对主分支的更改.在添加新功能时,每个开发人员都会从主分支中分叉主分支.我一直关注其他开发人员在他们自己的分支中进行的提交,并且有时希望将这些更改合并到我自己的分支中.我可以采取哪些措施来实现这一目标?

git version-control github

54
推荐指数
4
解决办法
6万
查看次数

DataTables:未捕获的TypeError:无法读取未定义的属性"默认值"

使用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.

javascript datatables twitter-bootstrap

47
推荐指数
1
解决办法
11万
查看次数

如何在Visual Studio中调试时强制执行异常?

我在调试模式下运行我的应用程序,我想手动抛出异常(即不在代码中).有没有办法做到这一点?

当然,throw new Exception("My forced exception");在Command或Immediate窗口中运行不起作用.

编辑:我希望异常被我正在调试的代码周围的try-catch语句捕获.

.net c# visual-studio

43
推荐指数
2
解决办法
2万
查看次数

ViewState与Session ...通过页面生命周期维护对象

有人可以解释一下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类的全局范围内?

.net c# viewstate session global-scope

40
推荐指数
2
解决办法
6万
查看次数

39
推荐指数
2
解决办法
3万
查看次数

35
推荐指数
2
解决办法
9422
查看次数

c#读取csv文件不提供有效路径

我似乎无法使用以下连接字符串读取.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# csv oledb

26
推荐指数
1
解决办法
3万
查看次数