我一直在开发一个程序,该程序允许我将数据从我的 sql server DB 上传到 SOAP 服务中。我可以成功地将数据上传到服务中。问题是正在插入同一行。以下是我的代码的一部分:`
List<service1.SDataRow> ArrayOfSData = new List<ne_service_demo2.service1.SDataRow>();
//data to be uploaded.
service1.SDataRow row1 = new service1.SDataRow();
foreach (DataRow dRow in dTable.Rows)
{
row1.SensorTimeStamp = dRow["SensorTimeStamp"].ToString();
row1.SensorID = dRow["SensorID"].ToString();
row1.PercentFull = dRow["PercentFull"].ToString();
row1.Temp = dRow["Temp"].ToString();
row1.TempReading = dRow["TempReading"].ToString();
row1.Sig = dRow["Sig"].ToString();
row1.SignalReading = dRow["SignalReading"].ToString();
row1.Noi = dRow["Noi"].ToString();
row1.NoiseReading = dRow["NoiseReading"].ToString();
row1.Cou = dRow["Cou"].ToString();
row1.CountReading = dRow["CountReading"].ToString();
row1.NewPercentFull = dRow["NewPercentFull"].ToString();
row1.Current_Gallons_In_Tank = dRow["Current_Gallons_In_Tank"].ToString();
ArrayOfSData.Add(row1);
}
service1.SensorData sd = new service1.SensorData();
sd.API_ACCESS_KEY = "7e070c1981ccc368483a207801be17aa17b2334c";
sd.AccountCode = "0000000";
sd.SData = ArrayOfSData.ToArray();
// Asynchronous call
ws.PostSensorDataCompleted += WebSeviceResult;
ws.PostSensorDataAsync(sd);`
当我遍历我的数据库表时,所有数据都会转到相应的字段或列。同样,问题是我得到相同的行 x 次。我知道问题是“row1”,因为它会不断更新新值,同时仍然保持列表计数。但是,我不能将 row1 设为列表类型,因为它必须是 SDataRow 类型,因为这是将我的服务链接到我的数据库列的类。我还尝试使用 List.Clear() 方法在循环中清除我的列表,但没有奏效。当我尝试在每次迭代后清除列表时,我会收到一条错误消息,提示“已添加项目”。所以理论上 clear() 方法应该可以工作,它的 row1 导致了问题。有谁知道解决方法或制作方法