【发布时间】:2017-11-01 19:03:02
【问题描述】:
这是代码 sn-p。我已使用 C# 成功连接到 Google Sheets API v4。我发现当单元格为空白或为空时。我收到此错误:System.ArgumentOutOfRangeException: '索引超出范围。必须是非负数且小于集合的大小。 参数名称:index' 如您所见,单元格 E3 中的输入 ID 单元格为空白/空。我在下面的代码中尝试了这个来检查它是否为空白,它给出的值为零,但仍然给出相同的错误。我想要实现的是,一旦单元格为空白,我将其值设为零或未知?请记住,如果我在单元格 E3 代码中输入值可以正常工作,只需要检查空单元格。从这里参考https://developers.google.com/sheets/api/quickstart/dotnet#further_reading
int inputId = 0;
foreach (var row in values)
{
SqlCommand command = new SqlCommand();
command.Connection = ServerConnection; // <== lacking
command.CommandType = CommandType.Text;
command.CommandText = "INSERT into [GoogleSheetsAPI].[dbo].[Followup Stage] ( [Timestamp], [Email Address], [Do You Want To Follow Up] ,[Is The Issue Resolved From Follow Up] ,[Input ID]) VALUES (@TimeStamp, @EmailAddress, @DoYouWantToFollowUp, @IsTheIssueResolvedFromFollowUp, @InputID ) ";
command.Parameters.AddWithValue("@TimeStamp", Convert.ToDateTime(row[0]));
command.Parameters.AddWithValue("@EmailAddress", Convert.ToString(row[1]));
command.Parameters.AddWithValue("@DoYouWantToFollowUp", Convert.ToString(row[2]));
command.Parameters.AddWithValue("@IsTheIssueResolvedFromFollowUp", Convert.ToString(row[3]));
//checking for null or if the cell is empty still doesn't work this way??
if (row[4] == null || string.IsNullOrEmpty(Convert.ToString(row[4])))
{
inputId = 0;
}
else
{
inputId = Convert.ToInt32(row[4]);
}
command.Parameters.AddWithValue("@InputID", inputId);
try
{
// ServerConnection.Open();
int recordsAffected = command.ExecuteNonQuery();
}
catch (SqlException E)
{
// error here
Console.Write(E.Message);
// Console.ReadLine;
}
}
【问题讨论】:
标签: c# .net google-sheets google-sheets-api