我正在编写一个SQL查询,我需要在表上执行子选择,这通常会返回多行.我需要能够将所有行中某个字段的结果连接到一个字段中才能输出.这有可能,怎么样?
例如,如果SQL查询返回
id | field
1 | test1
2 | test2
3 | test3
Run Code Online (Sandbox Code Playgroud)
我需要输出的字段是"test1 test2 test3".谢谢
这可能很简单,但我发现很难绕过这个.
基本上,我有2个表,a和b.'b'包含所有可能项目的列表,'a'包含链接到'b'中项目的行,以及父编号.即,要显示a中的行与他们的信息,我做这样的事情:
select a.field1, a.field2, b.description
from a inner join b on a.itemid = b.itemid
where a.parentnumber = @parentnumber
Run Code Online (Sandbox Code Playgroud)
那种事情起作用.但我还想要一个下拉框来显示未在该父帐户中列出的所有项目.我该怎么做?
我出于某种原因在我的C#/ ASP.NET项目中遇到以下错误 - 可能是它与查询的SubString部分有关.但是,总是填充"SageJobNo"和"CutOffDate".
错误:
传递给LEFT或SUBSTRING函数的长度参数无效.
代码如下:
IEnumerable<CcsVwICATimesheet> Timesheets = (from s in SageDC.CcsVwICATimesheets where s.Contract_Number.Substring(0, s.Contract_Number.IndexOf(" ")) == SageJobNo && s.Timesheet_Date <= CutOffDate select s);
foreach (CcsVwICATimesheet Timesheet in Timesheets)
{
LabourCosts += (double)Timesheet.Cost_Value;
}
Run Code Online (Sandbox Code Playgroud)
编辑:错误发生在'foreach'行
我有2个用于在C#中存储int值的列表,我想合并这些列表,但我不想在那里重复.即如果列表1有1,2,4且列表2有,2,3,5我想要1,2,3,4,5(关于订单无关紧要)在我的列表中.我尝试过Concat方法,但这会产生重复.
我有一个相当密集的应用程序,我刚从控制台应用程序转换为Windows窗体应用程序.该计划基本上遍历了数千名客户,并根据他们的交付创建发票.对于每个交付和客户,信息将输出到控制台窗口 - 这意味着输出了大量信息!旧的过程需要多达20分钟,考虑到它正在做的规模,这是合理的.但是我的经理和客户现在想要它作为Windows窗体.
我已经实现了这一点,并输出我作弊的信息,并简单地替换现有代码中的所有Console.WriteLine()调用来调用我的方法,将给定的文本附加到Windows窗体上的TextBox.
我有两个问题:
1:文本框偶尔会"冻结"并变白 - 但我认为我不能使用超过1个线程,因为我会定期在不同的线程上调用文本框
2:更严重的是,之前的20分钟过程需要更长的时间 - 大约4-5小时.我确信数据集没有被大幅放大,以便测试我们回滚到旧位置的所有代码,我能想到的唯一问题是我附加到文本框.我将在明天没有任何文本框写入测试以确认这一点,但代码没有以任何其他方式改变
有没有其他更简单的方法将文本输出到Windows窗体,每秒多次?
我有以下课程:
public class DocumentCompare
{
public string Customer;
public string Filename;
public string Reference;
public DateTime? Date;
public override bool Equals(object obj)
{
if (obj == null)
return false;
DocumentCompare doc = obj as DocumentCompare;
if ((Object)doc == null)
return false;
return (doc.Customer == Customer) && (doc.Date == Date) && (doc.Filename == Filename) && (doc.Reference == Reference);
}
public bool Equals(DocumentCompare doc)
{
if ((object)doc == null)
return false;
return (doc.Customer == Customer) && (doc.Date == Date) && (doc.Filename == …Run Code Online (Sandbox Code Playgroud) 我使用OleDb数据读取器读取大量记录,然后将它们写入CSV.然后我使用这个CSV读取File.ReadAllLines,然后用逗号分割以获取我的数据.问题是CSV的某些部分包括一个我无法显示的字符(显示为正方形),它看起来像一个换行符 - 这个换行符破坏了CSV,所以我需要摆脱它.
我试着更换Environment.NewLine与写入CSV时,其他的东西(一个空格),并同上/r和/n,但无济于事-字符不会被替换.还有哪些方法可以删除这些?
在SQL Server表中,我有一个名为Timestamp的字段,它是一个'datetime'字段.在我创建的屏幕上,用户将传递一个日期(没有时间),我需要返回该日期的所有记录.
只是做Timestamp = @Date似乎不起作用,除非字段中的时间是00:00:00.这样做最有效的方法是什么?
我来自ASP.NET背景,我的任务是维护一个WPF项目,所以这是一个相当学习的曲线.
我有一个带有以下XAML的DataGrid
<DataGrid Name="StockGV" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Scanned" IsReadOnly="true">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Name="StatusImage" Source="tick.png"></Image>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PalletScanned}" Value="False">
<Setter TargetName="StatusImage" Property="Source" Value="cross.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Pallet Number" IsReadOnly="True" Binding="{Binding PalletNumber}">
</DataGridTextColumn>
<DataGridTextColumn Header="Quantity" IsReadOnly="True" Binding="{Binding Quantity}">
</DataGridTextColumn>
<DataGridTemplateColumn IsReadOnly="true">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<xctk:IntegerUpDown HorizontalAlignment="Left" Name="integerUpDown1" Maximum="{Binding Quantity}" Minimum="0" VerticalAlignment="Top" Value="{Binding Quantity, Mode=OneWay}" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PalletScanned}" Value="False">
<Setter TargetName="integerUpDown1" Property="IsEnabled" Value="False"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
用户更新最后一个字段(IntegerUpDown控件),然后单击网格下方的"保存"按钮.我需要这个迭代每一行,获取IntegerUpDown控件的值并将其保存到DB.如果这是ASP.NET,我会做这样的事情:
foreach (GridViewRow row in gv.Rows)
{ …Run Code Online (Sandbox Code Playgroud) 我在我的C#应用程序中使用Refit与REST API交互,并且API方法有一个返回.jpg图像的调用.我想使用Refit下载此图像并将其作为字节数组,但它似乎返回一个乱码字符串.见下文.请参阅下面的图像下载界面方法
[Get("/Photos/{id}")]
Task<string> DownloadPhoto(Guid id);
Run Code Online (Sandbox Code Playgroud)
我尝试将字符串解析为Base64字符串,但这不起作用,所以我认为不是这样.有任何想法吗?
编辑:这里的第一行乱码响应.请注意,如果在浏览器中访问此相同的URL,它可以正常工作并显示图像
\ 0\u0010JFIF\0\U0001\U0001\0\0H\0H\0\0\0XExif\0\0MM\0*\0\0\0\B\0\U0002\U0001\u0012\0\U0003\0\0\0\U0001\0\U0001\0\0I\0\U0004\0\0\0\U0001\0\0\0\0\0\0\0\0\U0003\U0001\0\U0003\0\0\0\U0001\0\U0001\0\0\U0002\0\U0004\0\0\0\U0001\0\0\u0002X\U0003\0\u0004\0\0\0\u0001\0\0\u0003\0\0\0 \0 \08Photoshop 3.0\08BIM\u0004\u0004\0\0\0\0\0\08BIM\u0004%\ 0\0\0\0\0 \u0010 \u001d \0 \u0004 \t B~ \0\u0011\b\u0003\u0002X\u0003\u0001 \"\0\U0002\u0011\U0001\U0003\u0011\U0001\0\u001f