我正在使用a httprequest将Json从Web转换为字符串.
它可能很简单,但我似乎无法将此字符串转换为javax.json.JsonObject.
我怎样才能做到这一点?
想象一下,我为一个有很多属性的学生提供了以下课程,让我们简化它:
public class Student{
public Int64 id { get; set; }
public String name { get; set; }
public Int64 Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在主线程上我有以下列表:
List<Student> allStudents = new List<Student>();
Run Code Online (Sandbox Code Playgroud)
假设我在Excel文件中有500名学生,我想收集它们并将它们插入列表中.我可以做如下的事情:
for(int i = startRow; i < endRow; i++){
Student s = new Student();
//Perform a lot of actions to gather all the information standing on the row//
allStudents.Add(s);
}
Run Code Online (Sandbox Code Playgroud)
现在因为在Excel中收集信息非常慢,因为必须执行许多操作.所以我想使用Parallel.For,我可以想象做以下事情:
Parallel.For(startRow, endRow, i => {
Student s = new Student();
//Perform a lot of actions to gather …Run Code Online (Sandbox Code Playgroud) 如何在不迭代整个列表并将每个对象单独保存到数据库的情况下,一次将List保存在数据库中.
//So not like this solution
foreach(T t in data){
//Call function to save with stored procedure
Database.Save(t);
}
Run Code Online (Sandbox Code Playgroud)
(也没有使用实体框架)(我似乎只能在StackOverflow上获得基于实体框架或Dapper.Net的解决方案.)
通过以某种方式将列表发送到数据库并使用存储过程,这是否可行?
@Edit补充资料
我目前正在运行SQL 2012,并且希望能够在某些内容不起作用的情况下重新注册所有内容!
我正在尝试在 WPF 中创建具有多列的树视图。我很清楚,关于这个主题确实有很多问题。然而,他们在绑定数据时似乎采取了不同的方法。每个人似乎都设置了itemssource,就像我在后面的代码中填充treeview.items一样。这也是我不确定是否使用 ItemTemplate / HierarchicalDataTemplate 或正确方法来完成它的原因。(我感觉这应该是一个简单的步骤。)
我现在的代码如下:
Mainwindow.xaml 中的树视图
<TreeView x:Name="ProcesTree" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TreeView.ItemTemplate>
<ItemContainerTemplate>
<Grid>
<TextBlock Text="{Binding procesNummer}" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0"/>
<TextBlock Text="{Binding procesNaam}" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0"/>
</Grid>
</ItemContainerTemplate>
</TreeView.ItemTemplate>
</TreeView>
Run Code Online (Sandbox Code Playgroud)
主窗口.xaml.cs
public List<Proces> processen = new List<Proces>();
public MainWindow() {
InitializeComponent();
processen = Database.getHoofdProcessen();
processen = Extensions.OrderByAlphaNumeric(processen, p => p.procesNummer);
foreach (Proces p in processen) {
writeProcesses(p, ProcesTree.Items);
}
}
public void writeProcesses(Proces p, ItemCollection tv) {
tv.Add(p);
List<Proces> processen = Database.getProcessenOnNummer((p.procesNummer + ".%"));
if (processen.Count …Run Code Online (Sandbox Code Playgroud) 我已经制作了一个循环,每个月从当前年龄到年份x循环,比如80.
我有一个数组yearCalculation年和每年计算包含一个monthCalculation数组.(以防万一有人想对Lists发表评论,我目前正在使用数组,想看看是否有一个简单的解决方案.)
这看起来如下:
yearCalculations[] years = years.InstantiateArray(//Number of years, [80 minus age]//);
monthCalculations[] months = months.InstantiateArray(//Number of months in a year, [this should be 12]//);
Run Code Online (Sandbox Code Playgroud)
在实例化之后,我循环遍历所有时段并用各种计算填充它们.(但是,在达到年龄x之后,所有计算都将导致零):
for (int i = 0; i < yearCalculations.Length; i++) {
for (int j = 0; j < yearCalculations[i].monthCalculations.Length; j++) {
Double age = calculateAge(birthDate, dateAtTimeX);
if(age < ageX){
//Do all sorts of calculations.
}else{
//Break out of the loops
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如你在X(80)年代可以理解的那样,计算将完成,但去年的计算将包含一些结果,而不进行计算.让我们说这是从7月开始.调整此数组大小的最简单方法是什么,删除所有月份而不进行计算(所以索引6和之后)?
仅仅为了完整性,这里是instantiateArray函数;
public static T[] InstantiateArray<T>(this T[] t, Int64 …Run Code Online (Sandbox Code Playgroud) 对于批量插入,我有一个数据文件和一个格式文件(xml);
这正在使用批量插入语句处理OnPremises,但是在Azure中,格式文件似乎有问题。以下是我已采取的步骤
设置存储访问
创建存储的数据库范围凭证
CREATE DATABASE SCOPED CREDENTIAL StorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'This is my secret' (Shared Access Signature Key)
Run Code Online (Sandbox Code Playgroud)
创建一个外部数据源
CREATE EXTERNAL DATA SOURCE Storage
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storagename>.blob.core.windows.net/<containername>',
CREDENTIAL = StorageCredential
);
Run Code Online (Sandbox Code Playgroud)
文件查询(批量插入或Openrowset)
BULK INSERT <Schema>.<Table>
FROM 'File.dat'
WITH (
DATA_SOURCE = 'Storage',
FORMATFILE = 'File.xml'
)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM OPENROWSET(
BULK 'File.dat',
DATA_SOURCE = 'Storage',
FORMATFILE = 'File.xml'
) AS DataFile;
Run Code Online (Sandbox Code Playgroud)
它们都无法处理错误;
“无法批量加载,因为文件不完整或无法读取” …
c# ×4
arrays ×1
bulkinsert ×1
datatemplate ×1
httprequest ×1
java ×1
json ×1
locking ×1
sql-server ×1
t-sql ×1
treeview ×1
wpf ×1