在指定json响应在数组中之后,我使用了正确的语法指向数组中的数据。数组编号为0的项目很好。问题开始于数组位置1,2等之后。我不断抛出系统。“ ArgumentOutOfRangeException:'索引超出范围。必须为非负数,并且小于集合的大小。 参数名称:index'“错误。json数组结果在下面的链接中
我尝试更改某些语法,但无济于事。
private void btnSave_Click(object sender, EventArgs e)
{
string connectionString;
connectionString = @"Data Source=LAPTOP-R0HOA2B6;Initial Catalog=DemoDb;User ID=John;Password=1234";
SqlConnection cnn;
cnn = new SqlConnection(connectionString);
//Opens the connection to the database
cnn.Open();
dynamic jsonObj = JsonConvert.DeserializeObject(txtResponse.Text);
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("Insert into devicedata(device,time,data) VALUES (@device,@time,@data)", con))
{
cmd.Parameters.AddWithValue("device", jsonObj.data[0].device);
cmd.Parameters.AddWithValue("time", jsonObj.data[1].time);
cmd.Parameters.AddWithValue("data", jsonObj.data[2].data);
cmd.ExecuteNonQuery();
}
cnn.Close();
}
}
运行代码后,在调试模式下,数组中的值对应于代码,并且已将值正确分配给.device参数。
cmd.Parameters.AddWithValue("device", jsonObj.data[0].device);
后续代码:
cmd.Parameters.AddWithValue("device", jsonObj.data[1].time);
cmd.Parameters.AddWithValue("device", jsonObj.data[2].data);
被抓住并被抛出错误。