2012-07-16 61 views
2

我對API的使用相當陌生,直到今天還沒有觸及Quickbase。我正在研究Quickbase API,看起來好像我看到的所有示例都是用XML或類似的變體編寫的。有沒有辦法在C#中編寫代碼,這些代碼可以完成我在Quickbase網站的API文檔中完成的相同工作?如果您知道任何代碼示例,請告訴我。C中的Quickbase API的示例#

回答

3

有一個QuickBase C# SDK可能會幫助你開始。

using System; 
using Intuit.QuickBase.Client; 

namespace MyProgram.QB.Interaction 
{ 
    class MyApplication 
    { 
     static void Main(string[] args) 
     { 
      var client = QuickBase.Client.QuickBase.Login("your_QB_username", "your_QB_password"); 
      var application = client.Connect("your_app_dbid", "your_app_token"); 
      var table = application.GetTable("your_table_dbid"); 
      table.Query(); 

      foreach(var record in table.Records) 
      { 
       Console.WriteLine(record["your_column_heading"]); 
      } 
      client.Logout(); 
     } 
    } 
} 

還有一個QuickBase API Wrapper的例子。

+0

非常感謝這個及時的答案!你認爲使用SDK或包裝會更容易嗎?另外,爲了使上述代碼正常工作,我需要哪些參考? – 2012-07-16 22:42:35

+0

乍一看,我認爲包裝可能會更容易一點,但是SDK將需要更少的代碼,併爲您在幕後做很多事情,所以它是一種投入。我認爲這些文檔會讓你知道你需要的參考資料。 – 2012-07-17 03:25:17

1

早在2009年我寫了一個.NET API for QuickBase這使得該平臺輕鬆的工作,它也支持上傳和附加文件的下載。

IQuickBaseService svc = new QuickBaseService("user", "pass", "URL", "token"); 
Schema schema = svc.GetSchema("DBID"); 
Console.WriteLine("Schema : {0}", schema.Name); 
Console.WriteLine("Variables - "); 
for (KeyValuePair<string, string> ent in schema.Variables.OrderBy(en => en.Key)) { 
    Console.WriteLine("Var: {0} = {1}", ent.Key, ent.Value); 
} 
for (Query q : schema.Queries) { 
    // Work with queries. 
} 
// schema.Children 
// schema.Fields 
// ... 
svc.SignOut(); 

執行查詢很簡單。

QueryResult res; 
res = svc.Query("tableid", 1); // Execute query number 1 
res = svc.Query("tableid", "{{140.EX.'1'}}") // execute QB query text 

foreach (QueryRow row in result.Rows) { 
    // Do something with row, use get<type>, not all shown here. 
    // row.GetBool(1); 
    // row.GetInt(1); 
    // row.GetLong(1); 
    // row.GetFloat(1); 
    // row.GetDouble(1); 
    // row.GetDecimal(1); 
    // row.GetString(1); 
    // row.GetDate(1); 
    // row.GetDateTime(1); 
    // row.GetObject(1); 
}