C# 将双精度字符串列表作为字符串发送到数据库
只是对下面的代码感到很困惑 我有下面这样的课C# 将双精度字符串列表作为字符串发送到数据库,c#,C#,只是对下面的代码感到很困惑 我有下面这样的课 public class Counter { public Double NormalCounter { get; set; } public Double SATCounter { get; set; } public Double SUNCounter { get; set; } } 在我的主课上,我有一种方法来计算填充计数器 Counter CountHrs = GetBookedHours(re
public class Counter
{
public Double NormalCounter { get; set; }
public Double SATCounter { get; set; }
public Double SUNCounter { get; set; }
}
在我的主课上,我有一种方法来计算填充计数器
Counter CountHrs = GetBookedHours(resourceBkg, PrevEvent);
var lstExpResult = new List<string> {CountHrs.NormalCounter.ToString(),
CountHrs.SATCounter.ToString(),
CountHrs.SUNCounter.ToString()};
UpdateBooking(bookingSesid, lstExpResult);
计数器CountHrs=GetBookedHours(resourceBkg,PrevEvent);
var lstExpResult=新列表{CountHrs.NormalCounter.ToString(),
CountHrs.SATCounter.ToString(),
CountHrs.SUNCounter.ToString()};
更新记账(bookingSesid、lstExpResult);
假设计数器中的值如下所示
Counter CountHrs = GetBookedHours(resourceBkg, PrevEvent);
var lstExpResult = new List<string> {CountHrs.NormalCounter.ToString(),
CountHrs.SATCounter.ToString(),
CountHrs.SUNCounter.ToString()};
UpdateBooking(bookingSesid, lstExpResult);
正常计数器=4
卫星计数器=10
太阳计数器=6
我正在尝试添加到字符串列表并更新数据库。这样做正确吗?或者我有其他选择
我的更新预订方法如下,以给出明确的想法
public static bool UpdateBooking(string BookingSesid,List<string>HoursByRate)
{
SchedwinEntities db = new SchedwinEntities();
string value = string.Empty;
for (int i = 0; i < 5; i++)
{
string str = " ";
if (i < HoursByRate.Count())
{
str = HoursByRate[i];
value += str + ((char)13).ToString() + ((char)10).ToString();
}
}
var query =
from SEVTs in db.SEVTs
where
SEVTs.SESID.Trim() == BookingSesid//SESID
select SEVTs;
foreach (var SEVTs in query)
{
SEVTs.USER3 = value;//value
}
try
{
db.SaveChanges();
return true;
}
catch (UpdateException ex)
{
return false;
}
}
publicstaticboolupdatebooking(stringbookingsesid,ListHoursByRate)
{
SchedwinEntities db=新的SchedwinEntities();
字符串值=string.Empty;
对于(int i=0;i<5;i++)
{
字符串str=“”;
如果(i
您应该传递键值对列表,从中构造参数大小的语句,并使用键值对列表绑定参数值,而不是传递表示双的字符串列表,如下所示:
class SqlParamBinding {
string Name {get;set;}
object Value {get;set;}
}
var lstExpResult = new List<SqlParamBinding> {
new SqlParamBinding { Name = "NormalCounter", Value = CountHrs.NormalCounter}
, new SqlParamBinding { Name = "SATCounter", Value = CountHrs.SATCounter}
, new SqlParamBinding { Name = "SUNCounter", Value = CountHrs.SUNCounter}
};
UpdateBooking(bookingSesid, lstExpResult);
然后将@NormalCounter
、@SATCounter
和@SUNCounter
绑定到lstexpreult
列表中传递的值。与其传递表示双精度的字符串列表,不如传递键值对列表,从中构造参数大小的语句,并使用键值对列表绑定参数值,如下所示:
class SqlParamBinding {
string Name {get;set;}
object Value {get;set;}
}
var lstExpResult = new List<SqlParamBinding> {
new SqlParamBinding { Name = "NormalCounter", Value = CountHrs.NormalCounter}
, new SqlParamBinding { Name = "SATCounter", Value = CountHrs.SATCounter}
, new SqlParamBinding { Name = "SUNCounter", Value = CountHrs.SUNCounter}
};
UpdateBooking(bookingSesid, lstExpResult);
然后将@NormalCounter
、@SATCounter
和@SUNCounter
绑定到lstexpreult
列表中传递的值。如果它要列出计数器类,则使用列表而不是列表。看起来可能有一堆计数器对象正在更新或发送到数据库
Counter c = new Counter();
c. NormalCounter = 4
c.SATCounter = 10
c.SunCounter = 10
List<Counter> listCounter = new List<Counter>
listCounter.Add(c);
计数器c=新计数器();
C正常计数器=4
c、 卫星计数器=10
c、 太阳计数器=10
列表计数器=新列表
添加(c);
代码更易于维护和可读
如果您一次发送一个对象,那么根本不需要列表。您可以将计数器对象传递给UpdateMethod,并在更新数据库时对其进行解析。如果它要列出计数器类,则使用list而不是list。看起来可能有一堆计数器对象正在更新或发送到数据库
Counter c = new Counter();
c. NormalCounter = 4
c.SATCounter = 10
c.SunCounter = 10
List<Counter> listCounter = new List<Counter>
listCounter.Add(c);
计数器c=新计数器();
C正常计数器=4
c、 卫星计数器=10
c、 太阳计数器=10
列表计数器=新列表
添加(c);
代码更易于维护和可读
如果您一次发送一个对象,那么根本不需要列表。你可以将计数器对象传递到你的更新方法,并在更新数据库时解析它。我的C++也表示如果你有计数器,你应该使用整数类型,因为双打不能保证保持在精确的值上,但是,我们不知道你在做什么。我不知道为什么我对这个问题持否定态度?我猜是因为这个问题的第一次迭代不清楚。(我没有投票给你,这只是我的猜测)。任何方式感谢很多缰绳和其他C++中我也说你应该使用整数类型,如果你有计数器,因为双打不能保证停留在精确的值,但再次,我们不知道你在做什么。我不知道为什么我对这个问题持否定态度?我猜是因为这个问题的第一次迭代不清楚。(我没有否决你,这只是我的猜测)。无论如何,非常感谢rein和其他Hanks@opensourcelover,如果你看到我的更新方法将采用字符串列表,这就是为什么我尝试上面的选项,否则你的将是最简单和简洁的。谢谢@opensourcelover,如果你看到我的更新方法将采用字符串列表,这就是为什么我要尝试上面的选项,否则你的是最简单和整洁的一个。
Counter c = new Counter();
c. NormalCounter = 4
c.SATCounter = 10
c.SunCounter = 10
List<Counter> listCounter = new List<Counter>
listCounter.Add(c);