2013-10-25 165 views
0

我有一個通過輸出參數返回XML數據的sql server存儲過程(sql server 2005)。 要連接到此數據庫,首選選項是System DSN,因此我使用ODBC類 - ODBCConnection,ODBCCommand。問題是無論我使用什麼數據類型,NChar,char,Text,NText,VarChar,NVarChar,當我調用ODBCCommand :: ExecuteNonQuery時,總會得到相同的錯誤:C#,ODBC,Sql Server和xml數據類型

「數據類型0x63是不推薦使用的大對象,或LOB,但被標記爲輸出參數,不推薦使用類型作爲輸出參數,而應使用當前的大對象類型。

我打電話,如下的存儲過程:

 OdbcCommand cmd = new OdbcCommand("{CALL FetchTasks(?)}", conn); 
    cmd.CommandType = CommandType.StoredProcedure; 

    OdbcParameter param1 = new OdbcParameter(); 
    param1.ParameterName = "@TaskXML"; 
    param1.OdbcType = OdbcType.Text; //I have tried nchar, char, text, ntext 
    param1.Size = 2048; 
    param1.Value = "<Root></Root>"; 
    param1.Direction = ParameterDirection.Output; 
    cmd.Parameters.Add(param1); 

    cmd.ExecuteNonQuery(); 

反正我可以使它工作嗎?

在此先感謝 -Neel。

回答

0

實際上你需要檢查表列的數據類型,它返回的是xml數據,不管它的數據類型是xml還是其他數據類型?這取決於。

+0

當我通過Visual Studio中的服務器資源管理器連接時,xml被即時創建,並且存儲過程的參數顯示爲Text作爲參數的數據類型,我嘗試使用Text,但得到相同的錯誤。 –

+0

我想你需要將它轉換爲Text(System.String),反之亦然,分別傳遞和檢索。需要檢查。 –

+0

究竟如此呢? –