我使用SQl CLR解析一些表列。我想在C#用户定义的函数中执行查询。有人可以举例说明在函数中执行select和insert查询吗?
提前谢谢。
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;
答案 0 :(得分:11)
在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();
答案 1 :(得分:0)
切换到C#后,执行通常从应用程序执行的查询(使用ADO.NET的SqlConnection和SqlDataReader,使用LINQ to SQL或使用自定义构建数据层)。
答案 2 :(得分:-2)
要连接数据库,您必须在web.config文件的连接字符串中提及数据库用户名和密码。