2

こんにちは私はJavaコードをC#に変換する方法を理解しようとしています。Javaに関するチュートリアルをいくつか読みましたが、このコード行を翻訳する方法がわかりません。

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();

これは機能しません、どうすれば翻訳できますか?

4

3 に答える 3

2

これを試して

 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();
于 2012-05-11T21:03:27.117 に答える
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.

注:「ValidConnectionString」をconnectionStringに置き換える必要があります(ConnectionStringがこの情報を保持する変数である場合を除く)。そうでない場合、接続文字列は次のよう Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; になります。SQLServer2008データベースに接続します。その他の接続文字列については、次のサイトを参照してください。

http://www.connectionstrings.com/

于 2012-05-11T21:04:55.773 に答える
0

私はそれを以下を使って解決します。

http://www.cubrid.org/?mid=forum&category=195532&document_srl=358924

于 2012-05-14T17:26:00.660 に答える