3

テーブル列の解析に SQL CLR を使用しています。C#のユーザー定義関数でもクエリを実行したい。誰かが関数で選択および挿入クエリを実行する例を挙げてもらえますか?

前もって感謝します。

 SqlConnection objSqlConn;
    string connString = string.Empty;
    connString = "Data Source=(local);Initial Catalog=DB;User ID=uname;pwd=pass;Password=pass";
    objSqlConn = new SqlConnection(connString);
    objSqlConn.Open();

    string query = "Select count(*) FROM [DB].[dbo].[TableName]";
    SqlCommand cmdTotalCount = new SqlCommand(query, objSqlConn);
    cmdTotalCount.CommandTimeout = 0;
    string TotalCountValue = cmdTotalCount.ExecuteScalar().ToString();
    return TotalCountValue;
4

3 に答える 3

12

CLR では、既存の接続を使用してクエリを実行できます。

シンプルなデータをクライアントに返す:

var cmd = new SqlCommand("select * from [table]");
SqlContext.Pipe.ExecuteAndSend(cmd);

SqlDataReader 経由でデータを返す:

var con = new SqlConnection("context connection=true"); // using existing CLR context connection
var cmd = new SqlCommand("select * from table", con);
con.Open();
var rdr = cmd.ExecuteReader();
SqlContext.Pipe.Send(rdr);
rdr.Close();
con.Close();

他のコマンドの実行:

var con = new SqlConnection("context connection=true"); // using existing CLR context connection
var cmd = new SqlCommand("insert into [table] values ('ahoj')", con);
con.Open();
var rsa = cmd.ExecuteNonQuery();
con.Close();
于 2013-02-28T15:46:36.380 に答える
0

C# に切り替えたら、アプリケーションから通常行うようにクエリを実行します (ADO.NET の SqlConnection と SqlDataReader を使用するか、LINQ to SQL を使用するか、カスタム ビルド データ レイヤーを使用します)。

于 2012-10-18T09:45:03.177 に答える
-2

データベースに接続するには、web.config ファイルの接続文字列でデータベースのユーザー名とパスワードを指定する必要があります。

于 2012-10-18T10:16:19.493 に答える