Archived 2015 Posts

Archived 2015 Posts

Welcome to the Smartsheet Forum Archives


The posts in this forum are no longer monitored for accuracy and their content may no longer be current. If there's a discussion here that interests you and you'd like to find (or create) a more current version, please Visit the Current Forums.

c# Form submitting row to sheet via API 2.0.x

edited 12/09/19 in Archived 2015 Posts

I am using our website to submit froms to Smartsheet and am having dificulty following the C# explanations in the API documentation.  The first is a simple form with Date Submitted, First Name, Last Name and Email (formulated Date, Text/Number, Text/Number, Text/Number respectively).  I have not even added the variables in but Visual Studio is not recognizing sheetId (sqiggly red underscore in last line).  Anyone know how to rectify this?

 

 

smartsheet-add-row-code.png

Comments

  • ✭✭✭✭✭

    Michael,

     

    C# is Casesensitive. Try sheetID in stead of sheetId. Exactly as you defined  it earlier.

  • Just to recap: We had moved to the API 2 and we are using the following code to submit a single row via the codebehind in C#. (we had also installed smartsheet-csharp-sdk as a NuGet Solution in Visual Studio)

     

            protected void SendRowToSmartsheet() {
                string smartsheetAPIToken = ConfigurationManager.AppSettings["SWTCSmartsheetToken"];
                Token token = new Token();
                token.AccessToken = smartsheetAPIToken;
                // Use the Smartsheet Builder to create an instance of SmartsheetClient
                SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(token.AccessToken).Build();

                // Get all columns (omit 'include' parameter and pagination parameters).
                smartsheet.SheetResources.ColumnResources.ListColumns(73123464072xxxxx, null, null);
               
                // Specify cell values for first row.
                Cell[] cellsA = new Cell[] {
                    new Cell.AddCellBuilder(17217962705xxxxx, DateTime.Now).Build(),
                    new Cell.AddCellBuilder(2653362358xxxxx, name.Text).Build(),
                    new Cell.AddCellBuilder(73338073857xxxxx, whomComplaint.Text).Build(),
                    new Cell.AddCellBuilder(73338073857xxxxx, phone.Text).Build(),
                    new Cell.AddCellBuilder(17043078515xxxxx, email.Text).Build(),
                    new Cell.AddCellBuilder(84597072926xxxxx, issue.Text).Build()
                };
                // Specify contents of first row.
                Row rowA = new Row.AddRowBuilder(true, null, null, null, null).SetCells(cellsA).Build();
                // Add rows to sheet.
                smartsheet.SheetResources.RowResources.AddRows(73123464072xxxxx, new Row[] {rowA
                });
            }

  • edited 08/22/17

    ** nevermind** this works fine. Just make sure you haven't added, oh, hundreds of blank rows first. 

  • How can add multiple rows at a time.Right now with

    smartSheets.SheetResources.RowResources.AddRows(Id, new Row[] { rowsToUpdate });, I can only add a single row at a time to the sheet.If I have a list of rows how do I add it?

  • i am looking for a similar sample too (add multiple rows). If anyone has something to share would be highly appreciated

    If i come up with a better solution i will update this post at a later time

  • You can enter in many rows if needed, and even add rows to multiple sheets!

    Once you've added the first row:

     Cell[] cellsA = new Cell[] {

                    //new Cell.AddCellBuilder(5149002225xxxxx, DateTime.Now).Build(),

                    new Cell.AddCellBuilder(289720241xxxxx, name.Text).Build(),

                    new Cell.AddCellBuilder(740080203xxxxx, phone.Text).Build(),

                    new Cell.AddCellBuilder(177130250xxxxx, email.Text).Build(),

                    new Cell.AddCellBuilder(852670194xxxxx, message.Text).Build()

                };

                // Specify contents of first row.

                Row rowA = new Row.AddRowBuilder(true, null, null, null, null).SetCells(cellsA).Build();

                // Add rows to sheet.

                smartsheet.SheetResources.RowResources.AddRows(2729671298xxxxx, new Row[] {rowA});

    You can add others (and even use variables for the column and sheet IDs):

    Cell[] cellsB = new Cell[] {

                    //new Cell.AddCellBuilder(DateTimeID, DateTime.Now).Build(),

                    new Cell.AddCellBuilder(nameID, name.Text).Build(),

                    new Cell.AddCellBuilder(phoneID, phone.Text).Build(),

                    new Cell.AddCellBuilder(emailID, email.Text).Build(),

                    new Cell.AddCellBuilder(messageID, message.Text).Build()

                };

                // Specify contents of first row.

                Row rowB = new Row.AddRowBuilder(true, null, null, null, null).SetCells(cellsB).Build();

                // Add rows to sheet.

                smartsheet.SheetResources.RowResources.AddRows(sheetID, new Row[] { rowB });

    We used a case statement above our putting together rowB, C, D, ... to declare the different column and sheet IDs.

    Mike

  • You could also set this up in a loop for entering in multiple rows.  You would just iterate through an array setting the variables to the next group of data and submitting to the sheet.

  • If you have your data in an array, you could use a while loop to iterate through the array and submit multiple rows to the sheet that way. I replied to the previous comment about a way to submit multiple rows.

This discussion has been closed.

Trending Posts