我正在将数据从Excel工作表复制到SQL服务器表.在某些工作表中,我的数据大小超出了SQL的表格模式.
即表的列具有数据类型nvarchar(50),其中我的Excel工作表在某些shell中具有超过50个字符的数据.
现在,在复制时,具有此类数据的行不会插入到数据库中.相反,我想通过截断额外的字符来插入包含此类数据的行.我该怎么做呢?
我目前有:
SELECT Name, COUNT(*) as Total
FROM DataTable
WHERE Name IN ('A', 'B', 'C')
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)
结果输出:
Name Total
--------------
A 2
B 5
C 3
Run Code Online (Sandbox Code Playgroud)
相反,我想要这个:
Name Total
--------------
A 10
B 10
C 10
Run Code Online (Sandbox Code Playgroud)
这里10是总共2 + 5 + 3(名称= A/B/C的记录总数)
我该怎么做呢?
我有一个类选项.
public class Option
{
public bool Aggregation { get; set; }
public PropertyOptions Property { get; set; }
public bool DoEvent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
PropertyOptions就是这样的..
public enum PropertyOptions
{
[EnumMember]
On = 0,
[EnumMember]
Off = 1,
[EnumMember]
Auto = 2,
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个返回类Option对象的方法
Option setOptions()
{
return new Option()
{
Aggregation = true,
Property = new PropertyOptions()
{
PropertyOptions.Auto,
},
DoEvent = true,
};
}
Run Code Online (Sandbox Code Playgroud)
这里我收到一条错误,上面写着"无法使用集合初始化程序初始化类型PropertyOptions,因为它没有实现System.Collection.IEnumerable"
我不确定如何设置数据成员'Property'.如果有人能引起我注意可能出现的错误以及如何纠正错误会很有帮助?
我正在从Excel工作表中将数据复制到我的SQL表.Excel工作表有12个记录和其他2000个空行.我的工作流程是Excel输入 - > tMap - > tMSSqlOutput.
问题是,当我执行我的工作时,它正在从输入中读取2000行.后来的空行不会被复制到我的SQL表中,因为有"NOT NULL"值检查.
但我希望我的工作停止从Excel输入本身读取那些空行,我该怎么做?
请原谅我,如果这是基础知识,我有以下功能
private ReportOption GetReportOptions(int id, DataRow dr)
{
string reportType = GetValue(dr, "Report Type");
if (reportType == "Single")
{
GetSingleReportOptions(id, dr);
}
else
{
GetMultipleReportOptions(id, dr);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的两个功能GetSingleReportOptions,并GetMultipleReportOptions在返回类型的值ReportOption.
它仍然给我一个错误
并非所有代码路径都返回值
你能告诉我为什么吗?我应该如何构建此函数或在两个辅助函数中进行更改?