小编Use*_*384的帖子

列'*'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中

我有一个如下查询

select a.EmployeeName, 

STUFF(( SELECT ',' + camTable.DepartmentName AS [text()]
                        FROM EmpoyeeDepartment subTable
                left join DepartmentTable camTable on subTable.DepartmentID = camTable.DepartmentID 
                        WHERE
                        subTable.EmployeeID = a.EmployeeID
                        FOR XML PATH('')
                        ), 1, 1, '' )
            AS Departments
from 
EmployeeTable a
where a.EmployeeID = 144025
group by EmployeeName, Departments
Run Code Online (Sandbox Code Playgroud)

但是当我执行上面的sql时,出现了一个错误:

Column 'EmployeeTable.EmployeeID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Run Code Online (Sandbox Code Playgroud)

预期结果:

在此输入图像描述

上面的sql有什么问题?

sql sql-server aggregate-functions

4
推荐指数
1
解决办法
1710
查看次数

MVC如何在View中使用存储在ViewBag中的IEnumerable变量?

下面是View中出现错误的简化代码:

模型:

    public class Employee
    {
        public string EmployeeID{ get; set; }
        public string Name { get; set; }
        ...
    }
Run Code Online (Sandbox Code Playgroud)

控制器:

    public ActionResult Index()
    {
        var model = selectAllEmployees();
        ViewBag.ITDept = model.Where(a => a.departmentID == 4);
        ViewBag.Officer = model.Where(a => a.departmentID == 5);
        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

视图:

@model IList<EnrolSys.Models.Employee>

@{
    Layout = null;
}

@using (Html.BeginForm("Save", "EmployMaster"))
{
    for (int i = 0; i < ViewBag.ITDept.Count(); i++)
    {
        //Here's the error occurs
        @Html.Partial("EmployeeDisplayControl", ViewBag.ITDept[i])
    }
    <br />
}
Run Code Online (Sandbox Code Playgroud)

在该行中 …

c# asp.net-mvc asp.net-mvc-4

4
推荐指数
2
解决办法
4138
查看次数

LINQ to Entities无法识别方法'Boolean Contains(Int32)'方法

以下例外飞行

LINQ to Entities无法识别方法'Boolean Contains(Int32)'方法,并且此方法无法转换为商店表达式.

在尝试执行以下查询时

List<int> studentIDs = Common.getFilterStudents();
var query = from a in studentTable
            where studentIDs.Contains(a.StudentID)
            select a;
Run Code Online (Sandbox Code Playgroud)

如何使用studentIDs列表过滤查询?

c# linq entity-framework

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

SQL连接具有特定条件的两个表

表A结构:

在此输入图像描述

表B结构:

在此输入图像描述

上面是两个表,TableB.TableARelationID是一个用于映射表A的relationID.

期望的输出:

在此输入图像描述

所需的结果将是TableA.RecordID和TableB.Text,但只有表B中的Type 2,即忽略Type 1

下面是我使用的SQL查询:

SELECT tablea.recordid, 
       tableb.text 
FROM   tablea 
       LEFT JOIN tableb 
              ON tablea.relationid = tableb.tablearelationid 
WHERE  type = 2 
Run Code Online (Sandbox Code Playgroud)

但上面的查询会输出:

在此输入图像描述

即,删除了RecordID 1,因为"where"子句被过滤了.

那么如何从表A中显示RecordID 1?

sql select join left-join where-clause

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

带有千位分隔符的正则表达式有效数字

我在 asp.net 文本框中进行验证,文本框只允许用户输入数字

IE

有效数字:

1234
12.345
12,345,678.231
12,345,678
Run Code Online (Sandbox Code Playgroud)

无效数字:

-1234
12.23.45.67
12,
12,34,56
12,345,6
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用正则表达式通过以下正则表达式在客户端验证用户的输入:

^(?=.+)(?:[1-9]\d*|0)?(?:\.\d+)?$
Run Code Online (Sandbox Code Playgroud)

问题是:

上述正则表达式仅认为以下有效:

1234
12.345
Run Code Online (Sandbox Code Playgroud)

如何修改上面的正则表达式以检查千位分隔符是否输入正确的位置?

regex asp.net validation

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

使用 C# 程序通过 SFTP 远程删除文件

我想问一下如何使用 sftp 远程删除文件我尝试过使用 SharpSSH 但它不起作用,我得到了 SftpException

我首先在 sftp.cs 中添加了此代码

    public void Delete(string path)
    {
        SftpChannel.rm(path);
    }
Run Code Online (Sandbox Code Playgroud)

然后我在程序中输入了这个

Sftp ftp = new Sftp("ip 地址", "用户名", "密码"); ftp.Connect(); ftp.Delete("路径");

谢谢,问题解决了问题是我忘记在路径前面放一个“/”,所以它失败了

c# sftp sharpssh

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

将元组列表转换为字符串的更好方法

我在下面的结构中有一个List:

Tuple<string, string>
Run Code Online (Sandbox Code Playgroud)

像这样:

在此输入图像描述

我想加入列表,形成如下字符串:

['A', '1'],['B', '2'], ['C', '3']...
Run Code Online (Sandbox Code Playgroud)

我现在使用下面的代码来做:

string result = "";
for (int i = 0; i < list.Count; i++)
{
      result += "[ '" + list[i].Item1 + "', '" + list[i].Item2 + "'],";
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但想问是否有更好的方法可以做到这一点?

c# string

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

MVC下拉列表只读不起作用

以下是生成下拉列表的代码(在View中)

@Html.DropDownList("feeTypes", null, new { @disabled = false })
Run Code Online (Sandbox Code Playgroud)

当我将false更改为true时,上面的行很好用,但是当我将false设置为false时,它也被禁用(即,无论我输入true还是false,下拉列表始终处于禁用状态)

为什么会发生上述情况?

我真正想要做的是制作一个可以通过编程启用或禁用的下拉列表,还有其他方法可以实现吗?

c# asp.net-mvc html-select

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

asp.net updatePanel PostBackTrigger触发完整回发

下面是标记页面

  <asp:UpdatePanel runat="server" UpdateMode="Conditional">
        <ContentTemplate>
                    <table>
                        <tr>
                            <td>
                                <label>File name<label>
                            </td>
                        </tr>
                       <tr>
                            <td>
  <asp:TextBox runat="server" ID="txtName" Width="150%"></asp:TextBox>
                            </td>
                        </tr>
                      <tr>
                            <td>
                                <label>File</label>
                            </td>
                            <td>
                                <asp:FileUpload runat="server" ID="fileUpload" />
                            </td>
                        </tr>
                    </table>
                    <asp:Button runat="server" ID="btnUpload" Text="Upload file"  OnClick="btnUpload_Click" />
                </div>

                <div class="panel-heading">File display</div>
                <div class="panel-body">
     <asp:GridView runat="server">
       </asp:GridView>
                    <asp:Button runat="server" ID="btnRefresh" Text="Refresh" OnClick="btnRefresh_Click" />
                </div>
            </div>
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger ControlID="btnUpload" />
        </Triggers>
    </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

与上面的代码,当用户点击"btnUpload",就会有一个回,但有一个更新面板,以防止后回来,当我改变了PostBackTrigger到AsyncPostBackTrigger,页面没有贴背,但fileUpload.HasFile将为false并且无法获取该文件.

上面的代码出了什么问题?为什么postBackTrigger会触发回发帖?

c# asp.net file-upload asynchronous-postback

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

SQL"'1900-01-01 00:00:00'附近的语法错误." 尝试执行存储过程时

我有一个如下存储过程:

ALTER procedure [dbo].[test_stored_procedure]

@id                         nvarchar(20),
@datefm                     datetime,
@dateto                     datetime

as
   ...
end
Run Code Online (Sandbox Code Playgroud)

然后我试图使用下面的SQL调用上面的存储过程:

exec test_stored_procedure @searchKey, cast('1900-01-01 00:00:00' as datetime), cast('1900-01-01 00:00:00' as datetime)
Run Code Online (Sandbox Code Playgroud)

但是当执行时,我得到以下错误:

Incorrect syntax near '1900-01-01 00:00:00'.
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

t-sql sql-server stored-procedures sql-server-2008

1
推荐指数
1
解决办法
1098
查看次数