是否有可能在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