我在this,this等几个链接中看到了这个问题,但我相信我的情况有点不同。
我想传递给第二种形式的列表,该列表将上传到数据库。
列表的结构是:
public struct GraphData
{
public double Temp1;
public double Temp2;
public DateTime Date;
public string Type;
}
列表填充如下:
for (int i = startIndex; i <= endIndex; i++)
{
GraphData update = _listData[i];
update.Type = type;
_listData[i] = update;
chart1.Series[0].Points[i].Color = color;
// add to a list so we can save on the DB if the user wants
PointsAndCycles.Add(new GraphData()
{
Temp1 = update.Temp1,
Temp2 = update.Temp2,
Date = update.Date,
Type = update.Type
// CAN I ALSO HAVE THE ID?
});
}
我正在尝试传递这样的列表:
public void button1_Click(object sender, EventArgs e)
{
Database.SavePointsAndCyclesListIntoDB(List<GraphData> PointsAndCycles) ;
}
但我收到错误: CS0305 C#使用泛型类型'List'需要1个类型参数,CS0119 C#是一个类型,在给定的上下文中无效。
额外信息......在第二种形式中,我将执行如下列表:
public void SavePointsAndCyclesListIntoDB(List<GraphData> PointsAndCycles)
{
using (SqlConnection dbConnection = new SqlConnection(sqlConection))
{
try
任何人都可以帮助我吗?我从here
中接受了这个作为参数传递的想法如果我尝试:
public void button1_Click(object sender, EventArgs e)
{
Database.SavePointsAndCyclesListIntoDB(PointsAndCycles) ;
}
我收到错误:
System.Collections.Generic.List<A_Dev_.Analysis.FormA_DataType.GraphData>' to 'System.Collections.Generic.List<A_Dev_.Database.ClassDatabase.GraphData>'
最后,我试图以这种方式公开名单:
public List<GraphData> PointsAndCycles = new List<GraphData>();
额外: 在ClassDatabase中,我还像这样定义了GraphData
public struct GraphData
{
public double Temp1;
public double Temp2;
public DateTime Date;
public string Type;
}
答案 0 :(得分:0)
这有几个问题,第一个是函数调用的形式......
如果这是唯一的问题,你可以这样做
public void button1_Click(object sender, EventArgs e)
{
Database.SavePointsAndCyclesListIntoDB(PointsAndCycles) ;
}
您在函数调用中声明了一个类型。
另一个问题是PointsAndCycles
似乎不是当前范围的一部分,除非它包含在包含该函数的类中。您需要找到一种方法来访问事件处理程序中的List
,可能通过e
或sender
,具体取决于您正在执行的操作。