所以我有以下方法:
public void dataSchreiben(Messdaten data)
{
try
{
var ctxMess = new MessdatenDataContext();
var messSchreiben = new Messdaten()
{
stromschwSoll = data.stromschwSoll,
stromscwIst = data.stromscwIst,
stromMaxSoll = data.stromMaxSoll,
stromIst = data.stromIst,
drehzahl = data.drehzahl,
sollwerDrehmMaxon = data.sollwerDrehmMaxon,
istwertDrehmMaxonDR1 = data.istwertDrehmMaxonDR1,
istwertDrehmMaxonDR2 = data.istwertDrehmMaxonDR2,
rueckdrehmSollImLauf = data.rueckdrehmSollImLauf,
ruedrehmIstImLaufDR1 = data.ruedrehmIstImLaufDR1,
ruedrehmIstImLaufDR2 = data.ruedrehmIstImLaufDR2,
ruedrehmSollLosbrechen = data.ruedrehmSollLosbrechen,
ruedrehmIstLosbrDR1 = data.ruedrehmIstLosbrDR1,
ruedrehmIstLosbrDR2 = data.ruedrehmIstLosbrDR2,
sollwVerdrspGetriebe = data.sollwVerdrspGetriebe,
istwVerdrspGetriebe = data.istwVerdrspGetriebe,
sollVerdrehspGeber = data.sollVerdrehspGeber,
istwVerdrehspGeber = data.istwVerdrehspGeber,
serialNummer = "Succes"
};
ctxMess.Messdaten.InsertAllOnSubmit(messSchreiben);
try
{
ctxMess.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
ctxMess.SubmitChanges();
}
}catch {
MessageBox.Show("Schreiben error !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
我有一个数据库,其中包含 21 个字段(一个索引 autoincremetable 和一个时间戳)。Messdaten 数据是一个包含以下字段的结构。InsertAllOnSubmit 会返回此错误:
System.Data.Linq InsertAllOnSubmit (System.Collections.IEnumerable) 的类型参数-。方法不能通过从语法中推断出来。显式输入类型参数
另外,我的变量是双精度类型的,而在数据库中它们保存为浮点数。这会产生问题还是其他原因?我在谷歌上搜索,但没有找到解决方案。
public struct Messdaten //a structure containing all the elements of the measurements
{
public double stromschwSoll;
public double stromscwIst;
public double stromMaxSoll;
public double stromIst;
public double drehzahl;
public double sollwerDrehmMaxon;
public double istwertDrehmMaxonDR1;
public double istwertDrehmMaxonDR2;
public double rueckdrehmSollImLauf;
public double ruedrehmIstImLaufDR1;
public double ruedrehmIstImLaufDR2;
public double ruedrehmSollLosbrechen;
public double ruedrehmIstLosbrDR1;
public double ruedrehmIstLosbrDR2;
public double sollwVerdrspGetriebe;
public double istwVerdrspGetriebe;
public double sollVerdrehspGeber;
public double istwVerdrehspGeber;
public string serialNummer;
}
public Messdaten aktMessung;
和数据库声明:
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Messdaten")]
public partial class Messdaten : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _Index;
private System.Nullable<System.DateTime> _TimeStamp;
private System.Nullable<double> _StromschwSollLastlos;
private System.Nullable<double> _StromschwIstLastlos;
private System.Nullable<double> _StromMaxSollLastlos;
private System.Nullable<double> _StromMaxIstLastlos;
private System.Nullable<double> _DrehzahlMaxonmotor;
private System.Nullable<double> _SollwertDrehmMaxon;
private System.Nullable<double> _IstwertDrehmMaxonDR1;
private System.Nullable<double> _IstwertDrehmMaxonDR2;
private System.Nullable<double> _RueckdrehmSollImLauf;
private System.Nullable<double> _RuedrehmIstImLaufDR1;
private System.Nullable<double> _RuedrehmIstImLaufDR2;
private System.Nullable<double> _RuedrehmSollLosbrechen;
private System.Nullable<double> _RuedrehmIstLosbrDR1;
private System.Nullable<double> _RuedrehmIstLosbrDR2;
private System.Nullable<double> _SollwVerdrspGetriebe;
private System.Nullable<double> _IstwVerdrspGetriebe;
private System.Nullable<double> _SollVerdrehspGeber;
private System.Nullable<double> _IstwVerdrehspGeber;
private string _SerialNummer;
错误:重载 System.Data.Linq.Table InsertOnSubmit 的最佳匹配(STW_PruefStand.Messdaten -. has not some invalid method
1 - 参数:不能从 'STW_PruefStand.Form1.Messdaten "in" "STW_PruefStand.Messdaten" 转换