使用LINQ将项目从列表框保存到SQL Server表
本文关键字:保存 SQL Server 列表 LINQ 项目 使用 | 更新日期: 2023-09-27 18:15:00
我在我的WPF列表框中有以下项目A(字符串)和项目B(十进制)。我打算
将它们以各自的数据类型保存到MS SQL数据库中的表中。
DataClasses1DataContext dc = new DataClasses1DataContext();
foreach (var items in MyListBox.Items)
{
//I was thinking in this terms but I doubt if its the correct code
items=MyListBox.Items.Cast<String>().ToList();
//
//Then use this Linq Statement to insert the data
Student std = new Student();
std.Name=items
std.Marks=items
dc.Student.InsertOnSubmit(std);
dc.SubmitChanges();
}
任何需要澄清的请问,我仍然是c#, wpf, Linq的精简者
好了,下面是一个从ListBox的内容创建学生列表的算法。这里没有错误检查,所以您必须稍后根据您的需要处理它。我将在下面给出一点解释。
List<Student> students = new List<Student>();
double dub = 0;
items = MyListBox.Items.Cast<String>().ToList();
for (int i = 0; i < items.Length; i++)
{
if (i % 2 == 0)
{
dub = double.Parse(items[i]);
}
else
{
Student s = new Student();
s.Name = items[i];
s.Marks = dub;
students.Add(s);
}
}
它是这样工作的。在循环之外,我分配了一个学生列表,我们需要它来保存来自列表框的未知数量的学生。我使用for循环而不是for each,这样我就可以使用mod操作符来检查值是双精度还是字符串。双精度应该放在第一位,所以我把它保存在一个临时变量中。如果它是双精度,我解析它并将结果赋值给dub。因为我们处理的是对,如果i % 2 != 0,那么当前项是一个名称,这就是为什么我使用else块是安全的。在else块中,我分配了一个新的student对象,并用当前项设置名称。然后我用缓存的double设置标记。这样我就可以把它加到列表里了。或者,在else块中,您可以使用一个构造函数,该构造函数接受双精度类型和字符串类型并执行赋值操作。此时我们就知道两个值了这样就更简洁了