2017-12-10 10 views
0

SQLサーバーからのデータを処理しましたが、RStudioを使用してC#アプリケーションでこのコードの結果を得たいと思っていましたが、これを行うR.Netツールを見つけましたが、 C#でRの同じコードを適用する。それを直接行う方法はありますか? これは私のRコードです:C#でRコードを実行する

#build query 
Orders<- dbGetQuery(con," 
SELECT 
WHWorkOrderHeaderId 
,OtherLangDescription 
FROM Warehouse.WHWorkOrderDetails 
INNER JOIN Warehouse.WHWorkOrderHeader AS WHH 
ON Warehouse.WHWorkOrderDetails.WHWorkOrderHeaderId = WHH.ID 
INNER JOIN Warehouse.StockItems 
ON Warehouse.WHWorkOrderDetails.StockItemId = Warehouse.StockItems.Id 
WHERE Type = 'IO' 
ORDER BY OtherLangDescription ASC") 
#close the connection 
dbDisconnect(con) 
#return results 
Orders$OtherLangDescription <- as.factor(Orders$OtherLangDescription) 
orderList <- unique(Orders$OtherLangDescription) 
ListId <- lapply(orderList, function(x) subset(Orders, OtherLangDescription == x)$WHWorkOrderHeaderId) 
Initial_Tab <- lapply(ListId, function(x) subset(Orders, WHWorkOrderHeaderId %in% x)$OtherLangDescription) 
Correlation_Tab <- mapply(function(Product, ID) table(Product)/length(ID), 
          Initial_Tab, ListId) 
colnames(Correlation_Tab) <- orderList 
cor_per<- round(Correlation_Tab*100,2) 
DF<-data.frame(FirstItem=rownames(cor_per)[row(cor_per)], SecondItem=colnames(cor_per)[col(cor_per)], X.Correlation=c(cor_per)) 
DF 

答えて

0

[OK]を、私はここで何が起こっているか見ると思います。シンプルにするために、DFをCSV(またはExcel)として保存してC#にロードしてみましょう。それはあなたのための選択肢ですか?

library(xlsx) 
write.xlsx(DF, "c:/mydata.xlsx") 

次に... using System; using System.Data; using System.Windows.Forms; System.Data.SqlClientを使用している ;

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      System.Data.OleDb.OleDbConnection MyConnection; 
      System.Data.DataSet DtSet; 
      System.Data.OleDb.OleDbDataAdapter MyCommand; 
      MyConnection = new System.Data.OleDb.OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\csharp.net-informations.xls';Extended Properties=Excel 8.0;"); 
      MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection); 
      MyCommand.TableMappings.Add("Table", "Net-informations.com"); 
      DtSet = new System.Data.DataSet(); 
      MyCommand.Fill(DtSet); 
      dataGridView1.DataSource = DtSet.Tables[0]; 
      MyConnection.Close(); 
     } 
    } 
} 

これで、あなたは何でもできます。

これは高頻度のアプリではありませんでした。さて、これをチェックしてください。代替案として

https://www.r-bloggers.com/importing-and-displaying-a-data-frame-with-c-and-r-net/

、あなたはWebアプリケーションコンポーネントのためのPythonを使用して検討する必要があります。または、Shinyを使用することを検討してください。 C#はおそらく尋ねることができますが、私はここでどのように再生に来るか分からない。私は間違いなくC#、Python、またはShinyの専門家ではありません。私はちょうど私の余暇の時間にこれらのもので周りを遊ぶ。私が言っていることは、仕事に適切なツールを使用することです。

+0

私はその解決策に問題があります。毎分データを更新したいのですが、毎回データをエクスポートして結果を得ることができません。私のコードはSQLサーバーから新鮮なデータを取得して作業します。私のWebアプリケーションで結果を得るためにC#で直接コードを使用する方法。 – Believer

+0

私はちょうど私の元の投稿の修飾語です。 HTH。 – ryguy72

関連する問題