是否有可能在C#中执行任何类型的原始SQL命令(SELECT,UPDATE,DELETE ....)。我期望添加一个类似于SQL Server Management Studio查询窗口的功能,我可以在其中输入任何SQL命令并执行它。在我的情况下,我不担心sql注入,我知道这个功能的风险。所有连接参数都传递给我(我有一个有效的连接字符串),但我对数据库本身一无所知。在我得到命令之前,SQL命令在语法上也是正确的。我似乎无法找到可以在所有情况下都能正常工作的解决方案,可能只是忽略了明显的解决方案。执行任何原始SQL查询
回答
您可以简单地使用ADO .NET和显示查询的结果,如果它成功,或不执行,只是把下面的代码在事件处理程序中,当要执行查询:
using (SqlConnection conn = ConnectionClass.GetInstance().Connection())
using (SqlCommand cmd = new SqlCommand(TextBoxQuery.Text, conn))
{
conn.Open();
TextBoxNoOfRowEffected.Text = cmd.ExecuteNonQuery().ToString();
}
我不想要结果,我只想运行查询。我不会传回任何结果。这更适用于更新,删除和添加条件。我不认为会有任何Select语句传递给我。 – 2014-09-24 02:37:03
检查编辑... – 2014-09-24 02:49:29
下面是一个ADO比如你
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString =
"Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=true";
// Provide the query string with a parameter placeholder.
string queryString =
"UPDATE [dbo].[USR_Users] SET [Active] = 1 WHERE Id = 1";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
即使用户执行select语句,此工作是否也能正常工作?我的意思是我真的只想要使用查询字符串而不必添加参数。我被传递了这样的东西:UPDATE [dbo]。[USR_Users] SET [Active] = 1 WHERE Id = 1 – 2014-09-24 02:21:14
是的,它也可以不用参数 – Tim 2014-09-24 02:47:23
你真的应该处置SqlCommand实例。 – 2014-09-24 03:11:15
- 1. 在Yii2中执行原始SQL查询?
- 2. 使用Django执行原始SQL查询
- 3. sqlalchemy - 执行原始的sql查询
- 4. 如何在实体框架中执行原始sql查询?
- 5. Java执行Mongodb原始查询
- 6. 如何使用活动记录查询来执行此原始sql查询?
- 7. ActiveRecord执行原始sql
- 8. 的Django越来越可执行原始SQL的查询集
- 9. Django:Paginator +原始SQL查询
- 10. Django的原始SQL查询
- 11. ActiveRecord vs SQL原始查询?
- 12. CakePHP 3原始SQL查询
- 13. 如何获得SQL Alchemy正在执行的查询的原始SQL
- 14. 如何查看Django正在运行的原始SQL查询?
- 15. 执行SQL查询
- 16. SQL查询执行
- 17. 原始查询
- 18. 如何在环回中执行原始mongodb查询
- 19. 如何使用sequelize执行原始PostGIS查询使用包括
- 20. 如何使用Laravel 5.1执行原始查询?
- 21. C#ASP.NET MVC 5如何执行原始查询?
- 22. 如何在Oracle中执行原始查询时触发事件
- 23. 如何使用原始查询中获得的结果来执行子查询?
- 24. 如何用Django ORM查询重写原始SQL查询(MySQL)?
- 25. 执行原始的SQL中轨和Java
- 26. 使用ServiceStack.OrmLite执行原始的SQL
- 27. 如何使用Zend Framework 2运行原始SQL查询
- 28. 如何使用Sequel运行原始SQL查询
- 29. Python原始SQL查询正在返回[['''],]
- 30. db_index在Django作为原始SQL查询
当然,这是可能的。 – 2014-09-24 02:52:01
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-09-24 03:37:46
我建议为它使用精简版:http://www.nuget.org/packages/Dapper/ – razon 2014-09-24 06:52:37