2
 SqlCommand cmd = new SqlCommand("select Developer from Stackoverflow 
 where UserID='786' and Developer='Sufiyan'", con);
 if (con.State == ConnectionState.Closed)
 {
    con.Open();
 }
 SqlDataReader reader = cmd.ExecuteReader();
 if (reader.Read())
 {
    string codeSnippet = reader["CodeSnippet"].ToString();
    dynamic script = 
     CSScript.LoadCode(@"
     using System;
     using System.Windows.Forms;
     using System.Collections.Generic;
     using System.Data;
     using System.Windows.Forms;
     using System.Data.SqlClient;
     public class RunFromSqlServer
     {
       public void RunCode(string developer){" + codeSnippet + "}"+
               "}").CreateObject("*");script.RunCode("Mohammad Sufiyan Shaikh");
 }
 if (con.State == ConnectionState.Open)
 {
    con.Close();
 }

codeSnippet は、実行したい任意の C# コードにすることができます。他の人を助けるために、この質問に回答を投稿しました。

4

3 に答える 3

1

SQL と C# のコードをそのように組み合わせることはできません。SQL CLR と呼ばれる機能を使用して、SQL Server 2005 以降で .net コードを実行する方法がありますが、できることには制限があります。チュートリアルは次のとおりです:方法: CLR SQL Server ユーザー定義関数を作成して実行する(元のリンク)。

SQL CLR トリガーやストアド プロシージャなど、他にも作成できるものがあります。詳細については、SQL CLR を調べてください。

于 2013-03-08T12:30:18.310 に答える
0

かなりクールですが、コンパイルされたコードから得られる優れたものの多くが失われるため、非常に役立つとは思えません。たとえば、誰かが不適切な構文のコードをデータベース テーブルに挿入すると、プログラムが突然クラッシュします。

于 2013-03-08T12:59:18.923 に答える
0

この質問を読むまで、CS-Script が存在することを知りませんでした。非常に興味深い技術です。ドキュメントから、あなたはそれを間違って使用しているようです。

http://www.csscript.net/help/script_hosting_guideline_.html

あなたはこのようなことをしているはずです:

var result = CSScript.Eval("Mohammad Sufiyan Shaikh",
                            @"func(string user) {"
                                  + codeSnippet + ");
                              }"); 
于 2013-03-08T12:41:56.503 に答える