2012-05-11 79 views
2

您好我想了解如何將Java代碼轉換爲C#,我讀了關於Java的一些教程,但我不覺得在如何代碼此行翻譯方式:的Java與C# - CallableStatement的轉換

CallableStatement cstmt = con.prepareCall("?=CALL 
cstmt.registerOutParameter(1, Types.JAVA_OBJECT); 
cstmt.execute(); 
ResultSet rs = (ResultSet) cstmt.getObject(1); 

我試穿

CUBRIDConnection con = new CUBRIDConnection(ConnectionString); 
    CUBRIDCommand com = new CUBRIDCommand(); 
    com.CommandType = CommandType.StoredProcedure; 
    com.Connection = con; 
    com.CommandText = "call mySP();"; 
    com.Parameters.Add("?=p", CUBRIDDataType.CCI_U_TYPE_RESULTSET).Direction = 
     ParameterDirection.Output; 
    con.Open(); 
    DbDataReader df = com.ExecuteReader(CommandBehavior.SingleResult); 
    //some stuff 
    con.Close(); 

這個不行,我該怎麼翻譯呢?

+0

您可能轉化爲*算法*編碼在Java中的一個在C#編碼。由於Java和C#底層庫中應用程序必須使用的巨大差異,因此翻譯適中大小的程序確實非常困難。 –

+0

是你的Java應用程序指向SQL Server或Oracle數據庫嗎? –

+0

@Luiggi門多薩:致[CUBRID](http://www.cubrid.org/)數據庫:「** CUBRIDConnection **」 – Eye

回答

1

試試這個

SqlConnection con = new SqlConnection("your connection string"); 
    SqlCommand com = new SqlCommand(); 
    com.CommandType = CommandType.StoredProcedure; 
    com.Connection = con; 
    com.CommandText = "yourstoredprocedurename"; //no paranthesis or call key word just procedure name 
    SqlParameter parameter = new SqlParameter("yourparametername", SqlDbType.Binary); //just parameter name no questionmark 
    parameter.Direction= ParameterDirection.Output; 
    com.Parameters.Add(parameter); 
    con.Open(); 
    var df = com.ExecuteReader(CommandBehavior.SingleResult); 
    //some stuff 
    con.Close(); 
1

我提出以下線,可以改進,以幫助它的工作:

SqlConnection con = new SqlConnection("ValidConnectionString");  

com.CommandText = "storedProcedureName"; // You need to give the command the actual SP name, call mySP(); is invalid. 

com.Parameters.Add("@ParameterName", SqlDbType.Binary).Direction = ParameterDirection.Output; // Parameters are usually prefixed with @ParameterName (some people omit the @) however this is preference amongst developers. 

注意:您與您的connectionString取代「ValidConnectionString」(除非ConnectionString是持有這些信息的變量)。如果不是,則連接字符串如下所示:Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;這將連接到SQL Server 2008數據庫。對於其他的連接字符串,看下面的網站:

http://www.connectionstrings.com/